You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by dk...@apache.org on 2016/03/01 15:50:45 UTC

[7/9] cayenne git commit: Tests for hessian serialization service.

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 <dk...@gmail.com>
Authored: Mon Jan 25 18:28:41 2016 +0300
Committer: Dzmitry Kazimirchyk <dk...@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();
+	}
+	
+}