Skip to content

Problem with function instant("now) #102

Open
@gserracalahorra

Description

@gserracalahorra

Using fixture-factory-3.1.0, when fixture-factory trying to build this object

`public class ContactTemplate implements TemplateLoader
{
@OverRide public void load()
{
Fixture.of(Contact.class).addTemplate("valid", new Rule()
{
{
add("id", random(Long.class, range(1L, 10000L)));
add("codeUserClient", regex("[A-Za-z]{5,10}"));
add("locale", new Locale("es","ES"));
add("startDate", instant("now"));
add("endDate", instant("tomorrow"));
}
});

	Fixture.of(Contact.class).addTemplate("repository").inherits("valid", new Rule()
	{
		{
			add("id",null);
		}
	});
}

}
`
For this bean:

**`
@entity
@table(name = "AX_CONTACT")
public class Contact implements Serializable
{

private static final long serialVersionUID = 1L;

@Id
@GenericGenerator(name = "seq", strategy = "enhanced-sequence", parameters = {
        @org.hibernate.annotations.Parameter(name = "optimizer", value = "pooled"),
        @org.hibernate.annotations.Parameter(name = "sequence_name", value = "SEQ_AX_CONTACT"),
        @org.hibernate.annotations.Parameter(name = "initial_value", value = "1"),
        @org.hibernate.annotations.Parameter(name = "increment_size", value = "1")
})
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq")
@Column(name = "ID", length = 10, nullable = false)
private Long id;

@Column(name = "CODE_USER_CLIENT", nullable = false, length = 250)
private String codeUserClient;

@Column(name = "LANG", nullable = false, length = 5)
@Type(type = "locale")
private Locale locale;

@Column(name = "START_DATE",
		nullable = false)
private LocalDate startDate;

@Column(name = "END_DATE")
private LocalDate endDate;

public Contact()
{
    // empty constructor
}

public Long getId()
{
    return id;
}

public void setId(Long id)
{
    this.id = id;
}

public String getCodeUserClient()
{
    return codeUserClient;
}

public void setCodeUserClient(String codeUserClient)
{
    this.codeUserClient = codeUserClient;
}

public Locale getLocale()
{
    return locale;
}

public void setLocale(Locale locale)
{
    this.locale = locale;
}

public LocalDate getStartDate()
{
	return startDate;
}

public void setStartDate(LocalDate startDate)
{
	this.startDate = startDate;
}

public LocalDate getEndDate()
{
	return endDate;
}

public void setEndDate(LocalDate endDate)
{
	this.endDate = endDate;
}

@Override
public String toString()
{
	return "Contact{" + "id=" + id + ", codeUserClient='" + codeUserClient + '\'' + ", locale=" + locale + ", startDate=" + startDate
			+ ", endDate=" + endDate + '}';
}

}
`

Using this way:

Contact contact = Fixture.from(Contact.class).uses(getHibernateProcessor()).gimme("repository");

it fires the next exception.

java.lang.IllegalArgumentException: Incorrect type for transformer: java.time.LocalDate at br.com.six2six.fixturefactory.transformer.CalendarTransformer.transform(CalendarTransformer.java:38) at br.com.six2six.fixturefactory.transformer.TransformerChain.transform(TransformerChain.java:14) at br.com.six2six.fixturefactory.transformer.TransformerChain.transform(TransformerChain.java:18) at br.com.six2six.fixturefactory.ObjectFactory.processPropertyValue(ObjectFactory.java:240) at br.com.six2six.fixturefactory.ObjectFactory.createObject(ObjectFactory.java:121) at br.com.six2six.fixturefactory.ObjectFactory.gimme(ObjectFactory.java:62) at com.axpo.axiom.dbaccess.test.ContactRepositoryTest.testSaveAndFindOne(ContactRepositoryTest.java:28) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

¿What is the problem?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions