Comments (8)
@seongahjo I assumed that the interfaceImplements
was only used to let Fixture Monkey know what concrete classes to generate based on that interface/abstract class and not as well to know what concrete class could be set.
I guess the documentation needs a small note saying that this is the case.
And please check the bug that I mentioned of having duplicate values when you get a chance.
I had to do a nasty workaround to make it work in the meantime.
Thanks for your support.
from fixture-monkey.
On my project adding the class to the interfaceImplements
broken multiple tests.
They now complain about duplicates keys on the map.
Duplicate key attributes (attempted merging values [net.jqwik.engine.properties.arbitraries.ArbitraryMap@d62395c4](mailto:net.jqwik.engine.properties.arbitraries.ArbitraryMap@d62395c4) and [net.jqwik.engine.properties.arbitraries.ArbitraryMap@3c8e1a9a](mailto:net.jqwik.engine.properties.arbitraries.ArbitraryMap@3c8e1a9a))
java.lang.IllegalStateException: Duplicate key attributes (attempted merging values [net.jqwik.engine.properties.arbitraries.ArbitraryMap@d62395c4](mailto:net.jqwik.engine.properties.arbitraries.ArbitraryMap@d62395c4) and [net.jqwik.engine.properties.arbitraries.ArbitraryMap@3c8e1a9a](mailto:net.jqwik.engine.properties.arbitraries.ArbitraryMap@3c8e1a9a))
at java.base/java.util.stream.Collectors.duplicateKeyException(Collectors.java:135)
at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:182)
at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at com.navercorp.fixturemonkey.api.generator.ChildArbitraryContext.getArbitrariesByResolvedName(ChildArbitraryContext.java:71)
at com.navercorp.fixturemonkey.api.introspector.FieldReflectionArbitraryIntrospector.introspect(FieldReflectionArbitraryIntrospector.java:56)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:48)
at com.navercorp.fixturemonkey.api.generator.DefaultArbitraryGenerator.generate(DefaultArbitraryGenerator.java:44)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.generateArbitrary(ArbitraryTree.java:165)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.lambda$generateContext$2(ArbitraryTree.java:135)
at com.navercorp.fixturemonkey.api.generator.ArbitraryGeneratorContext.getChildrenArbitraryContexts(ArbitraryGeneratorContext.java:112)
at com.navercorp.fixturemonkey.api.introspector.ListIntrospector.introspect(ListIntrospector.java:62)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:42)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:48)
at com.navercorp.fixturemonkey.api.generator.DefaultArbitraryGenerator.generate(DefaultArbitraryGenerator.java:44)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.generateArbitrary(ArbitraryTree.java:165)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.lambda$generateContext$2(ArbitraryTree.java:135)
at com.navercorp.fixturemonkey.api.generator.ArbitraryGeneratorContext.getChildrenArbitraryContexts(ArbitraryGeneratorContext.java:112)
at com.navercorp.fixturemonkey.api.introspector.FieldReflectionArbitraryIntrospector.introspect(FieldReflectionArbitraryIntrospector.java:55)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:48)
at com.navercorp.fixturemonkey.api.generator.DefaultArbitraryGenerator.generate(DefaultArbitraryGenerator.java:44)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.generateArbitrary(ArbitraryTree.java:165)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.lambda$generateContext$2(ArbitraryTree.java:135)
at com.navercorp.fixturemonkey.api.generator.ArbitraryGeneratorContext.getChildrenArbitraryContexts(ArbitraryGeneratorContext.java:112)
at com.navercorp.fixturemonkey.api.introspector.ListIntrospector.introspect(ListIntrospector.java:62)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:42)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:48)
at com.navercorp.fixturemonkey.api.generator.DefaultArbitraryGenerator.generate(DefaultArbitraryGenerator.java:44)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.generateArbitrary(ArbitraryTree.java:165)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.lambda$generateContext$2(ArbitraryTree.java:135)
at com.navercorp.fixturemonkey.api.generator.ArbitraryGeneratorContext.getChildrenArbitraryContexts(ArbitraryGeneratorContext.java:112)
at com.navercorp.fixturemonkey.api.introspector.FieldReflectionArbitraryIntrospector.introspect(FieldReflectionArbitraryIntrospector.java:55)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:48)
at com.navercorp.fixturemonkey.api.generator.DefaultArbitraryGenerator.generate(DefaultArbitraryGenerator.java:44)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.generateArbitrary(ArbitraryTree.java:165)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.lambda$generateContext$2(ArbitraryTree.java:135)
at com.navercorp.fixturemonkey.api.generator.ArbitraryGeneratorContext.getChildrenArbitraryContexts(ArbitraryGeneratorContext.java:112)
at com.navercorp.fixturemonkey.api.introspector.ListIntrospector.introspect(ListIntrospector.java:62)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:42)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:48)
at com.navercorp.fixturemonkey.api.generator.DefaultArbitraryGenerator.generate(DefaultArbitraryGenerator.java:44)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.generateArbitrary(ArbitraryTree.java:165)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.lambda$generateContext$2(ArbitraryTree.java:135)
at com.navercorp.fixturemonkey.api.generator.ArbitraryGeneratorContext.getChildrenArbitraryContexts(ArbitraryGeneratorContext.java:112)
at com.navercorp.fixturemonkey.api.introspector.FieldReflectionArbitraryIntrospector.introspect(FieldReflectionArbitraryIntrospector.java:55)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:48)
at com.navercorp.fixturemonkey.api.generator.DefaultArbitraryGenerator.generate(DefaultArbitraryGenerator.java:44)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.generateArbitrary(ArbitraryTree.java:165)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.lambda$generateContext$2(ArbitraryTree.java:135)
at com.navercorp.fixturemonkey.api.generator.ArbitraryGeneratorContext.getChildrenArbitraryContexts(ArbitraryGeneratorContext.java:112)
at com.navercorp.fixturemonkey.api.introspector.ListIntrospector.introspect(ListIntrospector.java:62)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:42)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:48)
at com.navercorp.fixturemonkey.api.generator.DefaultArbitraryGenerator.generate(DefaultArbitraryGenerator.java:44)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.generateArbitrary(ArbitraryTree.java:165)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.lambda$generateContext$2(ArbitraryTree.java:135)
at com.navercorp.fixturemonkey.api.generator.ArbitraryGeneratorContext.getChildrenArbitraryContexts(ArbitraryGeneratorContext.java:112)
at com.navercorp.fixturemonkey.api.introspector.FieldReflectionArbitraryIntrospector.introspect(FieldReflectionArbitraryIntrospector.java:55)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:48)
at com.navercorp.fixturemonkey.api.generator.DefaultArbitraryGenerator.generate(DefaultArbitraryGenerator.java:44)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.generateArbitrary(ArbitraryTree.java:165)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.lambda$generateContext$2(ArbitraryTree.java:135)
at com.navercorp.fixturemonkey.api.generator.ArbitraryGeneratorContext.getChildrenArbitraryContexts(ArbitraryGeneratorContext.java:112)
at com.navercorp.fixturemonkey.api.introspector.ListIntrospector.introspect(ListIntrospector.java:62)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:42)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:48)
at com.navercorp.fixturemonkey.api.generator.DefaultArbitraryGenerator.generate(DefaultArbitraryGenerator.java:44)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.generateArbitrary(ArbitraryTree.java:165)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.lambda$generateContext$2(ArbitraryTree.java:135)
at com.navercorp.fixturemonkey.api.generator.ArbitraryGeneratorContext.getChildrenArbitraryContexts(ArbitraryGeneratorContext.java:112)
at com.navercorp.fixturemonkey.api.introspector.FieldReflectionArbitraryIntrospector.introspect(FieldReflectionArbitraryIntrospector.java:55)
at com.navercorp.fixturemonkey.api.introspector.CompositeArbitraryIntrospector.introspect(CompositeArbitraryIntrospector.java:48)
at com.navercorp.fixturemonkey.api.generator.DefaultArbitraryGenerator.generate(DefaultArbitraryGenerator.java:44)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.generateArbitrary(ArbitraryTree.java:165)
at com.navercorp.fixturemonkey.resolver.ArbitraryTree.generate(ArbitraryTree.java:83)
at com.navercorp.fixturemonkey.resolver.ArbitraryResolver.resolve(ArbitraryResolver.java:102)
at com.navercorp.fixturemonkey.builder.DefaultArbitraryBuilder.lambda$build$11(DefaultArbitraryBuilder.java:524)
at com.navercorp.fixturemonkey.builder.ArbitraryValue$MonkeyRandomGenerator.getArbitrary(ArbitraryValue.java:142)
at com.navercorp.fixturemonkey.builder.ArbitraryValue$MonkeyRandomGenerator.next(ArbitraryValue.java:94)
at net.jqwik.engine.facades.SampleStreamFacade.lambda$sampleStream$2(SampleStreamFacade.java:68)
at net.jqwik.engine.execution.lifecycle.CurrentTestDescriptor.runWithDescriptor(CurrentTestDescriptor.java:17)
at net.jqwik.engine.facades.SampleStreamFacade.runInDescriptor(SampleStreamFacade.java:60)
at net.jqwik.engine.facades.SampleStreamFacade.lambda$wrapInDescriptor$1(SampleStreamFacade.java:55)
at java.base/java.util.stream.StreamSpliterators$InfiniteSupplyingSpliterator$OfRef.tryAdvance(StreamSpliterators.java:1358)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
at net.jqwik.api.Arbitrary.sample(Arbitrary.java:421)
at com.navercorp.fixturemonkey.builder.DefaultArbitraryBuilder.sample(DefaultArbitraryBuilder.java:539)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at jdk.proxy2/jdk.proxy2.$Proxy5.stop(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
I will try to replicate the issue and I will then update the tests.
from fixture-monkey.
@seongahjo It fixes the problem.
Thanks
from fixture-monkey.
@esfomeado
It would work when adding Mark.class
in interfaceImplements
options.
Just like below.
.interfaceImplements(AbstractAuthor.class, List.of(Mark.class, John.class, Peter.class))
from fixture-monkey.
@seongahjo Thanks it solves that issue but I feel that it's weird and unintuitive having to put the class on the interfaceImplements
to be able to set a field.
from fixture-monkey.
Replication (duplicated-keys branch):
from fixture-monkey.
I feel that it's weird and unintuitive having to put the class on the interfaceImplements to be able to set a field.
interfaceImplements(AbstractAuthor.class, List.of(Mark.class, John.class, Peter.class))
interfaceImplements
is letting Fixture Monkey know what abstract class would be implemented not just for setting a field.
In this case AbstractAuthor
could be one of Mark
, Jonh
, Peter
.
So Fixture Monkey makes field nodes for Mark
, John
, Peter
.
Setting an input value to specific node representing by expression.
I think you feel it is weird because setting a field is not a concern of interfaceImplements
, is it right?
Is a name of this option weird? Any better idea for this option?
Please take a comment for this 😁 We would reflect it.
from fixture-monkey.
@esfomeado
Could you try snapshot version?
Add dependency as below
com.navercorp.fixturemonkey.snapshot:fixture-monkey:0.4.11-c5d6ec6
You should add snapshot in group.
from fixture-monkey.
Related Issues (20)
- InnerSpec test fails from JDK16 HOT 1
- Using Javax and Jakarta validation plugin together doesn't work HOT 1
- com.navercorp.fixturemonkey.ArbitraryBuilder#apply conflicts with kotlin apply
- Map genericsTypes must be have 2 generics type for key and value HOT 1
- Is there a way for the DefaultNullInjectGenerator to identify annotations with a CLASS retention policy? HOT 5
- support a third-party library or framework type
- support @Digits in JavaxValidationPlugin and JakartaValidationPlugin HOT 2
- Arbitrary always return same value in specific case HOT 2
- Set field for builder that have customizer not work HOT 8
- add a new implementation of StringArbitrary for FixtureMonkey
- apply validation annotations to YearMonth in JavaxValidationPlugin and JakartaValidationPlugin
- support generating lambda type HOT 3
- 'InnerSpec.keys()' Method with Collection Parameter Support
- Random a list of element that has a unique field HOT 4
- Repeated chars HOT 1
- JakartaValidationJavaArbitraryResolver doesn't work properly for properties with @Pattern
- Support generating kotlin.time.Duration
- List property in class is always generated with same size
- @NotBlank validation not working properly HOT 1
- Value not being set HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fixture-monkey.