public void Can_deserialize_between_dynamic_generic_and_strict_messages() { var original = new DynamicMessage { Id = Guid.NewGuid(), Priority = 3, ReplyTo = "http://path/to/reply.svc", RetryAttempts = 1, Type = typeof(MessageBody), Body = new MessageBody { Action = "Alphabet", Arguments = { "a", "b", "c" } } }; var jsv = TypeSerializer.SerializeToString(original); var dynamicType = TypeSerializer.DeserializeFromString <DynamicMessage>(jsv); var genericType = TypeSerializer.DeserializeFromString <GenericMessage <MessageBody> >(jsv); var strictType = TypeSerializer.DeserializeFromString <StrictMessage>(jsv); AssertHeadersAreEqual(dynamicType, original); AssertBodyIsEqual(dynamicType.GetBody(), (MessageBody)original.Body); AssertHeadersAreEqual(genericType, original); AssertBodyIsEqual(genericType.Body, (MessageBody)original.Body); AssertHeadersAreEqual(strictType, original); AssertBodyIsEqual(strictType.Body, (MessageBody)original.Body); //Debug purposes Console.WriteLine(strictType.Dump()); /* * { * Id: 891653ea2d0a4626ab0623fc2dc9dce1, * ReplyTo: http://path/to/reply.svc, * Priority: 3, * RetryAttempts: 1, * Body: * { * Action: Alphabet, * Arguments: * [ * a, * b, * c * ] * } * } */ }
public void Object_Set_To_Object_Test() { var original = new DynamicMessage { Id = Guid.NewGuid(), Priority = 3, ReplyTo = "http://path/to/reply.svc", RetryAttempts = 1, Type = typeof(MessageBody), Body = new Object() }; var jsv = TypeSerializer.SerializeToString(original); var json = JsonSerializer.SerializeToString(original); var jsvDynamicType = TypeSerializer.DeserializeFromString <DynamicMessage>(jsv); var jsonDynamicType = JsonSerializer.DeserializeFromString <DynamicMessage>(json); AssertHeadersAreEqual(jsvDynamicType, original); AssertHeadersAreEqual(jsonDynamicType, original); AssertHeadersAreEqual(jsvDynamicType, jsonDynamicType); }