public void ProcessReceivedMessageInputValidMessageAssertValid() { var jsonDataContractSerializer = new JsonDataContractSerializer(); var messageFake = new MessageFake { CreatedAt = DateTime.Now.Date }; var messageBus = MessageBusFactory.Create(new Identification(), messageFake, jsonDataContractSerializer); var inputGateway = RouterGatewayFactory.CreateInputGateway(_receiverEndPoint.Object, 5); var eventargs = new EventReceiverEndPointHandlerArgs { Message = Encoding.UTF8.GetBytes(jsonDataContractSerializer.Serialize(messageBus)) }; _receiverEndPoint.Setup(r => r.Start()).Raises(r => r.OnReceivedMessage += null, new object[] { null, eventargs }); MessageBus messageReceived = null; inputGateway.OnMessage += (sender, args) => messageReceived = jsonDataContractSerializer.Deserialize <MessageBus>(args.Message); inputGateway.Start(); Assert.AreEqual(messageBus.Body, messageReceived.Body); Assert.AreEqual(messageBus.Header.Type, messageReceived.Header.Type); Assert.AreEqual(messageBus.Header.BodyType, messageReceived.Header.BodyType); }
public void ProcessReceivedMessageInputValidMessageAssertValid() { var jsonDataContractSerializer = new JsonDataContractSerializer(); var messageFake = new MessageFake { CreatedAt = DateTime.Now.Date }; var messageBus = MessageBusFactory.Create(new Identification(), messageFake, jsonDataContractSerializer); var inputGateway = AgentGatewayFactory.CreateInputGateway <IMessage>(_receiverEndPoint.Object, 5); var eventargs = new EventReceiverEndPointHandlerArgs { Message = Encoding.UTF8.GetBytes(jsonDataContractSerializer.Serialize(messageBus)) }; _receiverEndPoint.Setup(r => r.Start()).Raises(r => r.OnReceivedMessage += null, new object[] { null, eventargs }); IMessage messageReceived = null; inputGateway.OnMessage += (sender, args) => messageReceived = args.Message; inputGateway.Start(); Assert.AreEqual(messageFake.CreatedAt, ((IMessageFake)messageReceived).CreatedAt); }
/// <summary> /// Called when [receiver end point handler]. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The args.</param> private void OnReceiverEndPointHandler(object sender, EventReceiverEndPointHandlerArgs args) { try { ProcessReceivedMessage(args.Message); } catch (Exception ex) { Logger.Fatal(string.Format("Error Intput Gateway {0}", _receiverReceiverEndPoint.Uri), ex); Logger.Fatal(string.Format("MessageBus: {0}", args.Message)); //TODO: Tratamiento de errores en el InputGateWay } }