@Test public void testNamedOutboundConversion() { final IStructHandler c = getConverter(SimpleStruct.class); verifyFieldOrder(c, "a", "b"); SimpleStruct struct = new SimpleStruct(); struct.a = "aaaa"; struct.b = 2; final String resultA = "ca"; setupOutboundConverter(struct.a, resultA); final String resultB = "cb"; setupOutboundConverter(struct.b, resultB); Map<?, ?> fromJava = c.fromJava(converter, struct, 0); Map<Object, Object> result = Maps.newHashMap(); result.put("a", resultA); result.put("b", resultB); Assert.assertEquals(result, fromJava); verifyOutboundConversion(struct.a); verifyOutboundConversion(struct.b); }
@Test public void testCustomOrderedOutboundConversionOneIndexed() { final IStructHandler c = getConverter(SimpleTableForcedOrdering.class); verifyFieldOrder(c, "b", "a", "c"); SimpleTableForcedOrdering struct = new SimpleTableForcedOrdering(); struct.a = "aaaa"; struct.b = 2; struct.c = 4.0f; final int resultA = 5; setupOutboundConverter(struct.a, resultA); final String resultB = "cb"; setupOutboundConverter(struct.b, resultB); final float resultC = 0.2f; setupOutboundConverter(struct.c, resultC); Map<?, ?> fromJava = c.fromJava(converter, struct, 0); // Java ordering Map<Object, Object> result = Maps.newHashMap(); result.put(0, resultB); result.put(1, resultA); result.put(2, resultC); Assert.assertEquals(result, fromJava); verifyOutboundConversion(struct.a); verifyOutboundConversion(struct.b); verifyOutboundConversion(struct.c); }
@Test public void testDefaultOrderedOutboundConversionZeroIndexed() { final IStructHandler c = getConverter(SimpleTableDefaultOrdering.class); verifyFieldOrder(c, "a", "b"); SimpleTableDefaultOrdering struct = new SimpleTableDefaultOrdering(); struct.a = "aaaa"; struct.b = 2; struct.skip = "zzzz"; final int resultA = 5; setupOutboundConverter(struct.a, resultA); final String resultB = "cb"; setupOutboundConverter(struct.b, resultB); Map<?, ?> fromJava = c.fromJava(converter, struct, 0); Map<Object, Object> result = Maps.newHashMap(); result.put(0, resultA); result.put(1, resultB); Assert.assertEquals(result, fromJava); verifyOutboundConversion(struct.a); verifyOutboundConversion(struct.b); }
@Test public void testGenericBaseOutboundConversion() { final IStructHandler c = getConverter(GenericDerrived.class); verifyFieldOrder(c, "fieldA", "fieldB", "fieldC", "fieldD"); GenericDerrived struct = new GenericDerrived(); struct.fieldA = false; struct.fieldB = 3.5f; struct.fieldC = 34; struct.fieldD = "Hello"; final int resultA = 5; setupOutboundConverter(struct.fieldA, resultA); final String resultB = "cb"; setupOutboundConverter(struct.fieldB, resultB); final float resultC = 0.2f; setupOutboundConverter(struct.fieldC, resultC); final boolean resultD = false; setupOutboundConverter(struct.fieldD, resultD); Map<?, ?> fromJava = c.fromJava(converter, struct, 0); Map<Object, Object> result = Maps.newHashMap(); result.put("fieldA", resultA); result.put("fieldB", resultB); result.put("fieldC", resultC); result.put("fieldD", resultD); Assert.assertEquals(result, fromJava); verifyOutboundConversion(struct.fieldA); verifyOutboundConversion(struct.fieldB); verifyOutboundConversion(struct.fieldC); verifyOutboundConversion(struct.fieldD); }