Tests for hessian serialization service.
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/d96ddec1 Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/d96ddec1 Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/d96ddec1 Branch: refs/heads/master Commit: d96ddec1c6860f93e4a1950f4554cdb2d05cd837 Parents: 1d9c26b Author: Dzmitry Kazimirchyk <dkazimirc...@gmail.com> Authored: Mon Jan 25 18:28:41 2016 +0300 Committer: Dzmitry Kazimirchyk <dkazimirc...@gmail.com> Committed: Tue Mar 1 14:10:20 2016 +0300 ---------------------------------------------------------------------- .../http/HessianROPSerializationServiceIT.java | 94 ++++++++++++++++++++ 1 file changed, 94 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/d96ddec1/cayenne-client/src/test/java/org/apache/cayenne/rop/http/HessianROPSerializationServiceIT.java ---------------------------------------------------------------------- diff --git a/cayenne-client/src/test/java/org/apache/cayenne/rop/http/HessianROPSerializationServiceIT.java b/cayenne-client/src/test/java/org/apache/cayenne/rop/http/HessianROPSerializationServiceIT.java new file mode 100644 index 0000000..770b625 --- /dev/null +++ b/cayenne-client/src/test/java/org/apache/cayenne/rop/http/HessianROPSerializationServiceIT.java @@ -0,0 +1,94 @@ +package org.apache.cayenne.rop.http; + +import org.apache.cayenne.CayenneContext; +import org.apache.cayenne.di.Inject; +import org.apache.cayenne.rop.ROPSerializationService; +import org.apache.cayenne.rop.ServerHessianSerializationServiceProvider; +import org.apache.cayenne.testdo.mt.ClientMtTable1; +import org.apache.cayenne.testdo.mt.ClientMtTable2; +import org.apache.cayenne.unit.di.client.ClientCase; +import org.apache.cayenne.unit.di.server.CayenneProjects; +import org.apache.cayenne.unit.di.server.UseServerRuntime; +import org.junit.Test; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; + +import static org.junit.Assert.*; + +@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT) +public class HessianROPSerializationServiceIT extends ClientCase { + + @Inject + private CayenneContext context; + + @Test + public void testByteArraySerialization() throws Exception { + ClientMtTable1 table1 = context.newObject(ClientMtTable1.class); + table1.setGlobalAttribute1("Test table1"); + + ClientMtTable2 table2 = context.newObject(ClientMtTable2.class); + table2.setGlobalAttribute("Test table2"); + table2.setTable1(table1); + + ROPSerializationService clientService = createClientSerializationService(); + ROPSerializationService serverService = createServerSerializationService(); + + // test client to server serialization + byte[] data = clientService.serialize(table2); + ClientMtTable2 serverTable2 = serverService.deserialize(data, ClientMtTable2.class); + + assertEquals("Test table2", serverTable2.getGlobalAttribute()); + assertEquals("Test table1", serverTable2.getTable1().getGlobalAttribute1()); + + // test server to client serialization + data = serverService.serialize(table2); + ClientMtTable2 clientTable2 = clientService.deserialize(data, ClientMtTable2.class); + + assertEquals("Test table2", clientTable2.getGlobalAttribute()); + assertEquals("Test table1", clientTable2.getTable1().getGlobalAttribute1()); + } + + @Test + public void testStreamSerialization() throws Exception { + ClientMtTable1 table1 = context.newObject(ClientMtTable1.class); + table1.setGlobalAttribute1("Test table1"); + + ClientMtTable2 table2 = context.newObject(ClientMtTable2.class); + table2.setGlobalAttribute("Test table2"); + table2.setTable1(table1); + + ROPSerializationService clientService = createClientSerializationService(); + ROPSerializationService serverService = createServerSerializationService(); + + ByteArrayOutputStream out = new ByteArrayOutputStream(); + + // test client to server serialization + clientService.serialize(table2, out); + out.flush(); + ClientMtTable2 serverTable2 = serverService.deserialize( + new ByteArrayInputStream(out.toByteArray()), ClientMtTable2.class); + + assertEquals("Test table2", serverTable2.getGlobalAttribute()); + assertEquals("Test table1", serverTable2.getTable1().getGlobalAttribute1()); + + // test server to client serialization + out = new ByteArrayOutputStream(); + serverService.serialize(table2, out); + out.flush(); + ClientMtTable2 clientTable2 = clientService.deserialize( + new ByteArrayInputStream(out.toByteArray()), ClientMtTable2.class); + + assertEquals("Test table2", clientTable2.getGlobalAttribute()); + assertEquals("Test table1", clientTable2.getTable1().getGlobalAttribute1()); + } + + private ROPSerializationService createClientSerializationService() { + return new ClientHessianSerializationServiceProvider().get(); + } + + private ROPSerializationService createServerSerializationService() { + return new ServerHessianSerializationServiceProvider().get(); + } + +}