public void FromMessageWithNonMatchingMessageType() { var serializers = new Mock <IStoreObjectSerializers>(); var translator = new CommandInvocationConverter(serializers.Object); var msg = new SuccessMessage(new EndpointId("a"), new MessageId()); var data = translator.FromMessage(msg); Assert.IsInstanceOf(typeof(UnknownMessageTypeData), data); Assert.AreSame(msg.Id, data.Id); Assert.AreSame(msg.Sender, data.Sender); Assert.AreSame(msg.InResponseTo, data.InResponseTo); }
public void FromMessage() { var serializers = new Mock <IStoreObjectSerializers>(); { serializers.Setup(s => s.HasSerializerFor(It.IsAny <Type>())) .Returns(true); serializers.Setup(s => s.SerializerFor(It.IsAny <Type>())) .Returns(new NonTransformingObjectSerializer()); } var translator = new CommandInvocationConverter(serializers.Object); var id = CommandId.Create(typeof(int).GetMethod("CompareTo", new[] { typeof(object) })); var msg = new CommandInvokedMessage( new EndpointId("a"), new CommandInvokedData( id, new[] { new CommandParameterValueMap( new CommandParameterDefinition(typeof(object), "other", CommandParameterOrigin.FromCommand), 1), })); var data = translator.FromMessage(msg); Assert.IsInstanceOf(typeof(CommandInvocationData), data); Assert.AreSame(msg.Id, data.Id); Assert.AreSame(msg.Sender, data.Sender); Assert.AreSame(msg.InResponseTo, data.InResponseTo); Assert.AreEqual(CommandIdExtensions.Serialize(id), ((CommandInvocationData)data).CommandId); Assert.AreEqual(msg.Invocation.Parameters.Length, ((CommandInvocationData)data).ParameterTypes.Length); Assert.AreEqual( msg.Invocation.Parameters[0].Parameter.Type.FullName, ((CommandInvocationData)data).ParameterTypes[0].FullName); Assert.AreEqual( msg.Invocation.Parameters[0].Parameter.Type.Assembly.GetName().Name, ((CommandInvocationData)data).ParameterTypes[0].AssemblyName); Assert.AreEqual(msg.Invocation.Parameters.Length, ((CommandInvocationData)data).ParameterNames.Length); Assert.AreEqual( msg.Invocation.Parameters[0].Parameter.Name, ((CommandInvocationData)data).ParameterNames[0]); Assert.AreEqual(msg.Invocation.Parameters.Length, ((CommandInvocationData)data).ParameterValues.Length); Assert.AreEqual( msg.Invocation.Parameters[0].Value, ((CommandInvocationData)data).ParameterValues[0]); }