public void testExtractNamed() throws Exception { NameExtractor<Named> extractor = new ExtractNamed(); try { extractor.extractName(SimpleTest.class.getDeclaredField("a").getAnnotation(Named.class)); } catch (NullPointerException e) { } try { extractor.extractName(SimpleTest.class.getDeclaredField("b").getAnnotation(Named.class)); fail(); } catch (NullPointerException e) { } assertEquals(extractor.extractName(SimpleTest.class.getDeclaredField("c").getAnnotation(Named.class)), "cat"); assertEquals(extractor.extractName(SimpleTest.class.getDeclaredField("d").getAnnotation(Named.class)), "dog"); }
public void testAnnotationFieldNamingStrategy() throws Exception { FieldNamingStrategy strategy = new AnnotationFieldNamingStrategy(ImmutableSet.of(new ExtractNamed())); assertNull(strategy.translateName(SimpleTest.class.getDeclaredField("a"))); assertNull(strategy.translateName(SimpleTest.class.getDeclaredField("b"))); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("c")), "cat"); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("d")), "dog"); }
public void testAnnotationFieldNamingStrategy() throws Exception { FieldNamingStrategy strategy = new AnnotationFieldNamingStrategy(ImmutableSet.of(new ExtractNamed())); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("a")), null); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("b")), null); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("c")), "cat"); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("d")), "dog"); }
public void testExtractNamed() throws Exception { NameExtractor<Named> extractor = new ExtractNamed(); try { extractor.extractName(SimpleTest.class.getDeclaredField("a").getAnnotation(Named.class)); } catch (NullPointerException e) { } try { extractor.extractName(SimpleTest.class.getDeclaredField("b").getAnnotation(Named.class)); fail(); } catch (NullPointerException e) { } assertEquals(extractor.extractName(SimpleTest.class.getDeclaredField("c").getAnnotation(Named.class)), "cat"); assertEquals(extractor.extractName(SimpleTest.class.getDeclaredField("d").getAnnotation(Named.class)), "dog"); }
public void testAnnotationConstructorFieldNamingStrategyCPAndNamed() throws Exception { AnnotationConstructorNamingStrategy strategy = new AnnotationConstructorNamingStrategy( ImmutableSet.of(ConstructorProperties.class), ImmutableSet.of(new ExtractNamed())); Invokable<SimpleTest, SimpleTest> constructor = strategy.getDeserializer(typeToken(SimpleTest.class)); assertNotNull(constructor); assertEquals(constructor.getParameters().size(), 4); assertEquals(strategy.translateName(constructor, 0), "aardvark"); assertEquals(strategy.translateName(constructor, 1), "bat"); assertEquals(strategy.translateName(constructor, 2), "coyote"); // Note: @Named overrides the ConstructorProperties setting assertEquals(strategy.translateName(constructor, 3), "dingo"); Invokable<MixedConstructorTest, MixedConstructorTest> mixedCtor = strategy.getDeserializer(typeToken(MixedConstructorTest.class)); assertNotNull(mixedCtor); assertEquals(mixedCtor.getParameters().size(), 4); assertEquals(strategy.translateName(mixedCtor, 0), "aardvark"); assertEquals(strategy.translateName(mixedCtor, 1), "bat"); assertEquals(strategy.translateName(mixedCtor, 2), "cat"); assertEquals(strategy.translateName(mixedCtor, 3), "dog"); }
public void testAnnotationConstructorFieldNamingStrategyInject() throws Exception { AnnotationConstructorNamingStrategy strategy = new AnnotationConstructorNamingStrategy( ImmutableSet.of(Inject.class), ImmutableSet.of(new ExtractNamed())); Invokable<SimpleTest, SimpleTest> constructor = strategy.getDeserializer(typeToken(SimpleTest.class)); assertNotNull(constructor); assertEquals(constructor.getParameters().size(), 5); assertEquals(strategy.translateName(constructor, 0), "aa"); assertEquals(strategy.translateName(constructor, 1), "bb"); assertEquals(strategy.translateName(constructor, 2), "cc"); assertEquals(strategy.translateName(constructor, 3), "dd"); Invokable<MixedConstructorTest, MixedConstructorTest> mixedCtor = strategy.getDeserializer(typeToken(MixedConstructorTest.class)); assertNotNull(mixedCtor); assertEquals(mixedCtor.getParameters().size(), 4); assertEquals(strategy.translateName(mixedCtor, 0), "aardvark"); assertEquals(strategy.translateName(mixedCtor, 1), "bat"); assertEquals(strategy.translateName(mixedCtor, 2), "cat"); assertEquals(strategy.translateName(mixedCtor, 3), "dog"); }
static DeserializationConstructorAndReflectiveTypeAdapterFactory parameterizedCtorFactory() { FieldNamingStrategy serializationPolicy = new AnnotationOrNameFieldNamingStrategy(ImmutableSet.of( new ExtractSerializedName(), new ExtractNamed())); AnnotationConstructorNamingStrategy deserializationPolicy = new AnnotationConstructorNamingStrategy( ImmutableSet.of(ConstructorProperties.class, SerializedNames.class, Inject.class), ImmutableSet.of(new ExtractNamed())); return new DeserializationConstructorAndReflectiveTypeAdapterFactory(new ConstructorConstructor(ImmutableMap.<Type, InstanceCreator<?>>of()), serializationPolicy, Excluder.DEFAULT, deserializationPolicy); }
public void testAnnotationConstructorFieldNamingStrategyInject() throws Exception { AnnotationConstructorNamingStrategy strategy = new AnnotationConstructorNamingStrategy( ImmutableSet.of(Inject.class), ImmutableSet.of(new ExtractNamed())); Invokable<SimpleTest, SimpleTest> constructor = strategy.getDeserializer(typeToken(SimpleTest.class)); assertNotNull(constructor); assertEquals(constructor.getParameters().size(), 5); assertEquals(strategy.translateName(constructor, 0), "aa"); assertEquals(strategy.translateName(constructor, 1), "bb"); assertEquals(strategy.translateName(constructor, 2), "cc"); assertEquals(strategy.translateName(constructor, 3), "dd"); } }
public void testAnnotationConstructorFieldNamingStrategyCPAndNamed() throws Exception { AnnotationConstructorNamingStrategy strategy = new AnnotationConstructorNamingStrategy( ImmutableSet.of(ConstructorProperties.class), ImmutableSet.of(new ExtractNamed())); Invokable<SimpleTest, SimpleTest> constructor = strategy.getDeserializer(typeToken(SimpleTest.class)); assertNotNull(constructor); assertEquals(constructor.getParameters().size(), 4); assertEquals(strategy.translateName(constructor, 0), "aardvark"); assertEquals(strategy.translateName(constructor, 1), "bat"); assertEquals(strategy.translateName(constructor, 2), "coyote"); }
public void testAnnotationOrNameFieldNamingStrategy() throws Exception { FieldNamingStrategy strategy = new AnnotationOrNameFieldNamingStrategy(ImmutableSet.of(new ExtractNamed())); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("a")), "a"); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("b")), "b"); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("c")), "cat"); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("d")), "dog"); }
static DeserializationConstructorAndReflectiveTypeAdapterFactory parameterizedCtorFactory() { FieldNamingStrategy serializationPolicy = new AnnotationOrNameFieldNamingStrategy(ImmutableSet.of( new ExtractSerializedName(), new ExtractNamed())); NamingStrategies.AnnotationConstructorNamingStrategy deserializationPolicy = new NamingStrategies.AnnotationConstructorNamingStrategy( ImmutableSet.of(ConstructorProperties.class, Inject.class), ImmutableSet.of(new ExtractNamed())); return new DeserializationConstructorAndReflectiveTypeAdapterFactory(new ConstructorConstructor(), serializationPolicy, Excluder.DEFAULT, deserializationPolicy); }
public void testAnnotationOrNameFieldNamingStrategy() throws Exception { FieldNamingStrategy strategy = new AnnotationOrNameFieldNamingStrategy(ImmutableSet.of(new ExtractNamed())); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("a")), "a"); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("b")), "b"); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("c")), "cat"); assertEquals(strategy.translateName(SimpleTest.class.getDeclaredField("d")), "dog"); }