/** * Get test context. * * @param marsh Binary marshaller. * @param fieldName Field name. * @return Test context. * @throws Exception If failed. */ private TestContext context(BinaryMarshaller marsh, String fieldName) throws Exception { TestObject obj = createObject(); BinaryObjectExImpl portObj = toBinary(marsh, obj); BinaryField field = portObj.type().field(fieldName); return new TestContext(obj, portObj, field); }
/** * Get test context with nested test object. * * @param marsh Binary marshaller. * @param fieldName Field name. * @return Test context. * @throws Exception If failed. */ private TestContext nestedContext(BinaryMarshaller marsh, String fieldName) throws Exception { TestObject obj = createObject(); TestOuterObject outObj = new TestOuterObject(obj); BinaryObjectExImpl portOutObj = toBinary(marsh, outObj); BinaryObjectExImpl portObj = portOutObj.field("fInner"); assert portObj != null; BinaryField field = portObj.type().field(fieldName); return new TestContext(obj, portObj, field); }
/** * @throws Exception If failed. */ @Test public void testCustomIdMapper() throws Exception { BinaryTypeConfiguration type = new BinaryTypeConfiguration(CustomMappedObject1.class.getName()); type.setIdMapper(new BinaryIdMapper() { @Override public int typeId(String clsName) { return 11111; } @Override public int fieldId(int typeId, String fieldName) { assert typeId == 11111; if ("val1".equals(fieldName)) return 22222; else if ("val2".equals(fieldName)) return 33333; assert false : "Unknown field: " + fieldName; return 0; } }); BinaryMarshaller marsh = binaryMarshaller(Arrays.asList(type)); CustomMappedObject1 obj1 = new CustomMappedObject1(10, "str"); BinaryObjectExImpl po1 = marshal(obj1, marsh); assertEquals(11111, po1.type().typeId()); assertEquals((Integer)10, po1.field(22222)); assertEquals("str", po1.field(33333)); assertEquals(10, po1.<CustomMappedObject1>deserialize().val1); assertEquals("str", po1.<CustomMappedObject1>deserialize().val2); }