@Test void testAnnotation_withWrongValue() { Arrays.asList( method(Revolver.class, "someArguments_wrongAnnotation"), ctor(Revolver.SomeArguments_wrongAnnotation.class) ).forEach(methodOrCtor -> { assertThrows(PetiteException.class, () -> referencesResolver.readAllReferencesFromAnnotation(methodOrCtor)); }); }
@Test void testAnnotation_noArguments() { Arrays.asList( method(Revolver.class, "onlyAnnotation"), ctor(Revolver.OnlyAnnotation.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.readAllReferencesFromAnnotation(methodOrCtor); assertEquals(0, refs.length); }); }
@Test void testResolveReferenceFromValues_invalidNumberOfRefs() { Arrays.asList( method(Revolver.class, "someArguments"), ctor(Revolver.SomeArguments.class) ).forEach(methodOrCtor -> { assertThrows(PetiteException.class, () -> { referencesResolver.resolveReferenceFromValues(methodOrCtor, "i1"); }); }); }
@Test void testNoAnnotation() { Arrays.asList( method(Revolver.class, "noAnnotation"), ctor(Revolver.NoAnnotation.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.readAllReferencesFromAnnotation(method(Revolver.class, "noAnnotation")); assertEquals(null, refs); }); }
@Test void testAnnotation_withCsvValue() { Arrays.asList( method(Revolver.class, "someArguments_csv"), ctor(Revolver.SomeArguments_csv.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.readAllReferencesFromAnnotation(methodOrCtor); assertEquals(2, refs.length); assertEquals(1, refs[0].size()); assertEquals("innn1", refs[0].name(0)); assertEquals(1, refs[1].size()); assertEquals("innn2", refs[1].name(0)); }); }
@Test void testResolveReferenceFromValues_explicit() { Arrays.asList( method(Revolver.class, "someArguments"), ctor(Revolver.SomeArguments.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.resolveReferenceFromValues(methodOrCtor, "i1", "i2"); assertEquals(2, refs.length); assertEquals(1, refs[0].size()); assertEquals("i1", refs[0].name(0)); assertEquals(1, refs[1].size()); assertEquals("i2", refs[1].name(0)); }); }
@Test void testAnnotation_mix() { Arrays.asList( method(Revolver.class, "mix"), ctor(Revolver.Mix.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.readAllReferencesFromAnnotation(methodOrCtor); assertEquals(2, refs.length); assertEquals(1, refs[0].size()); assertEquals("innn1", refs[0].name(0)); assertEquals(1, refs[1].size()); assertEquals("bbbb", refs[1].name(0)); }); }
@Test void testAnnotation_noMethodArguments_partial() { Arrays.asList( method(Revolver.class, "noMethodArgument_partial"), ctor(Revolver.NoMethodArgument_partial.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.readAllReferencesFromAnnotation(methodOrCtor); assertEquals(2, refs.length); assertEquals(1, refs[0].size()); assertEquals("innn1", refs[0].name(0)); assertEquals(3, refs[1].size()); assertEquals("in2", refs[1].name(0)); assertEquals("integer", refs[1].name(1)); assertEquals("java.lang.Integer", refs[1].name(2)); }); }
@Test void testAnnotation_withArguments() { Arrays.asList( method(Revolver.class, "someArguments"), ctor(Revolver.SomeArguments.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.readAllReferencesFromAnnotation(methodOrCtor); assertEquals(2, refs.length); assertEquals(3, refs[0].size()); assertEquals("in1", refs[0].name(0)); assertEquals("string", refs[0].name(1)); assertEquals("java.lang.String", refs[0].name(2)); assertEquals(3, refs[1].size()); assertEquals("in2", refs[1].name(0)); assertEquals("integer", refs[1].name(1)); assertEquals("java.lang.Integer", refs[1].name(2)); }); }
@Test void testResolveReferenceFromValues_defaults() { Arrays.asList( method(Revolver.class, "someArguments"), ctor(Revolver.SomeArguments.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.resolveReferenceFromValues(methodOrCtor); assertEquals(2, refs.length); assertEquals(3, refs[0].size()); assertEquals("in1", refs[0].name(0)); assertEquals("string", refs[0].name(1)); assertEquals("java.lang.String", refs[0].name(2)); assertEquals(3, refs[1].size()); assertEquals("in2", refs[1].name(0)); assertEquals("integer", refs[1].name(1)); assertEquals("java.lang.Integer", refs[1].name(2)); }); }
@Test void testAnnotation_noMethodArguments() { Arrays.asList( method(Revolver.class, "noMethodArgument"), ctor(Revolver.NoMethodArgument.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.readAllReferencesFromAnnotation(methodOrCtor); assertEquals(2, refs.length); assertEquals(3, refs[0].size()); assertEquals("in1", refs[0].name(0)); assertEquals("string", refs[0].name(1)); assertEquals("java.lang.String", refs[0].name(2)); assertEquals(3, refs[1].size()); assertEquals("in2", refs[1].name(0)); assertEquals("integer", refs[1].name(1)); assertEquals("java.lang.Integer", refs[1].name(2)); }); }