@SuppressWarnings("unchecked") @BeforeClass public static void beforeClass() { writeOnlyCodec = Mockito.mock(ITransferCodec.class); Mockito.when( writeOnlyCodec.isSerilizationSupported( Mockito.any(Class.class), Mockito.any(ITransferType.class.getClass()))) .thenReturn(false); Mockito.when(writeOnlyCodec.isSerilizationSupported(Object.class, IJsonTransferType.class)) .thenReturn(true); Mockito.when( writeOnlyCodec.isDeserilizationSupported( Mockito.any(Class.class), Mockito.any(ITransferType.class.getClass()))) .thenReturn(false); readOnlyCodec = Mockito.mock(ITransferCodec.class); Mockito.when( readOnlyCodec.isDeserilizationSupported( Mockito.any(Class.class), Mockito.any(ITransferType.class.getClass()))) .thenReturn(false); Mockito.when(readOnlyCodec.isDeserilizationSupported(Object.class, IJsonTransferType.class)) .thenReturn(true); Mockito.when( readOnlyCodec.isSerilizationSupported( Mockito.any(Class.class), Mockito.any(ITransferType.class.getClass()))) .thenReturn(false); TransferCodecRegistry.instance().registerCodec(readOnlyCodec); TransferCodecRegistry.instance().registerCodec(writeOnlyCodec); }
@Test public void writeSupportedType() throws IOException { Assert.assertTrue( TransferCodecRegistry.instance().canSerialize(Object.class, IJsonTransferType.class)); ITransferSerializer<Object> serializer = TransferCodecRegistry.instance().serializerForType(testObject, IJsonTransferType.class); Assert.assertNotNull(serializer); serializer.serialize(baos); Mockito.verify(writeOnlyCodec).serializeObject(testObject, baos, IJsonTransferType.class); }
@Test public void readSupportedType() throws IOException { Assert.assertTrue( TransferCodecRegistry.instance().canDeserialize(Object.class, IJsonTransferType.class)); ITransferDeserializer<Object> serializer = TransferCodecRegistry.instance().deserializerForType(Object.class, IJsonTransferType.class); Assert.assertNotNull(serializer); Object o = serializer.deserialize(bais); Assert.assertEquals(inputObject, o); Mockito.verify(readOnlyCodec).deserializeObject(bais, IJsonTransferType.class); }
@Test public void writeUnsupportedType() { Assert.assertFalse( TransferCodecRegistry.instance().canSerialize(Object.class, ITransferType.class)); Assert.assertFalse( TransferCodecRegistry.instance() .canSerialize(Object.class, IWWWUrlFormEncodedTransferType.class)); Assert.assertFalse( TransferCodecRegistry.instance().canSerialize(String.class, IJsonTransferType.class)); Assert.assertNull( TransferCodecRegistry.instance().serializerForType(Object.class, ITransferType.class)); Assert.assertNull( TransferCodecRegistry.instance() .serializerForType(Object.class, IWWWUrlFormEncodedTransferType.class)); Assert.assertNull( TransferCodecRegistry.instance().serializerForType(String.class, IJsonTransferType.class)); }