public void TestMethodBinaryMessageSerialization() { BinaryMessageSerializer msgSerializer = new BinaryMessageSerializer(); GenericMessage msg = new GenericMessage(); msg.Type = MessageType.MethodInvokeRequest; msg.Target = typeof(TypeDescription).FullName; msg.Name = "CallThisMethod(int)"; msg.RequestId = 1; msg.Payload = new object[] { 1, 2, 3, 4 }; var bytes = msgSerializer.SerializeToBytes(msg, null); // 425 DeserializeAndCheck(msgSerializer, msg, bytes); var bytes2 = msgSerializer.SerializeToBytes(msg, null); // 77 DeserializeAndCheck(msgSerializer, msg, bytes2); var bytes3 = msgSerializer.SerializeToBytes(msg, null); // 77 DeserializeAndCheck(msgSerializer, msg, bytes3); }
public void TestMethodBinaryMessageSerializationComplexPayloadWithResponse() { BinaryMessageSerializer msgSerializer = new BinaryMessageSerializer(); var testItem = new TestItem() { ID = 5, Name = "Test it" }; GenericMessage msg = new GenericMessage(); msg.Type = MessageType.MethodInvokeRequest; msg.Target = typeof(ITestService).FullName; msg.Name = "CallTest(BSAG.IOCTalk.Serialization.Binary.Test.Model.ITestItem)"; msg.RequestId = 1; msg.Payload = new object[] { testItem }; var bytes = msgSerializer.SerializeToBytes(msg, null); BinaryMessageSerializer msgSerializerNewDeserialize = new BinaryMessageSerializer(); GenericMessage deserializedMsg = (GenericMessage)msgSerializerNewDeserialize.DeserializeFromBytes(bytes, null); object[] payloadArr = (object[])deserializedMsg.Payload; ITestItem testItemDeserialized = (ITestItem)payloadArr.First(); Assert.Equal(testItem.ID, testItemDeserialized.ID); Assert.Equal(testItem.Name, testItemDeserialized.Name); // response test GenericMessage msg2 = new GenericMessage(); msg2.Type = MessageType.MethodInvokeResponse; msg2.Target = typeof(ITestService).FullName; msg2.Name = "GetTestItem()"; msg2.RequestId = 2; msg2.Payload = testItem; var bytesMsg2 = msgSerializer.SerializeToBytes(msg2, null); GenericMessage deserializedMsg2 = (GenericMessage)msgSerializerNewDeserialize.DeserializeFromBytes(bytesMsg2, null); ITestItem deserializedTest2 = (ITestItem)deserializedMsg2.Payload; Assert.Equal(testItem.ID, deserializedTest2.ID); Assert.Equal(testItem.Name, deserializedTest2.Name); }