public void CreateTopicMessage_WithTopicEvent_FirstFrameIsFullName() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateTopicMessage(obj); // Assert Assert.That(message[0].ConvertToString(), Is.EqualTo(obj.GetType().FullName)); }
public void CreateTopicMessage_WithTopicEvent_SecondFrameIsSerializedData() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateTopicMessage(obj); // Assert Assert.That(message[1].ToByteArray(), Is.EqualTo(data)); }
public void CreateTopicMessage_WithTopicEvent_MessageHasTwoFrames() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateTopicMessage(obj); // Assert Assert.That(message.FrameCount, Is.EqualTo(2)); }
public void CreateResponseMessage_WithResponse_FifthFrameIsSerializedData() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateResponseMessage(obj, address, requestId, dotNetSerializer.Descriptor.InvariantName); // Assert Assert.That(message[4].ToByteArray(), Is.EqualTo(data)); }
public void CreateResponse_WithResponse_HasFiveFrames() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateResponseMessage(obj, address, requestId, dotNetSerializer.Descriptor.InvariantName); // Assert Assert.That(message.FrameCount, Is.EqualTo(5)); }
public void CreateRequestMessage_WithRequest_ForthFrameIsSerializedData() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateRequestMessage(obj, requestId); // Assert Assert.That(message[3].ToByteArray(), Is.EqualTo(data)); }
public void CreateResponseMessage_WithResponse_ForthFrameEmpty() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateResponseMessage(obj, address, requestId, dotNetSerializer.Descriptor.InvariantName); // Assert Assert.That(message[3], Is.EqualTo(NetMQFrame.Empty)); }
public void CreateResponseMessage_WithResponse_ThirdFrameIsRequestId() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateResponseMessage(obj, address, requestId, dotNetSerializer.Descriptor.InvariantName); // Assert Assert.That(message[2].ConvertToInt32(), Is.EqualTo(requestId)); }
public void CreateRequestMessage_WithRequest_ThirdFrameEmpty() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateRequestMessage(obj, requestId); // Assert Assert.That(message[2], Is.EqualTo(NetMQFrame.Empty)); }
public void CreateTopicMessage_WithTopicEvent_PacksInPackage() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateTopicMessage(obj); // Assert mockPackageFactory.Verify(m => m.Pack(It.IsIn <object>(obj)), Times.Once); }
public void CreateRequestMessage_WithRequest_MessageHasFourFrames() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateRequestMessage(obj, requestId); // Assert Assert.That(message.FrameCount, Is.EqualTo(4)); }
public void CreateRequestMessage_WithRequest_SecondFrameIsRequestId() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateRequestMessage(obj, requestId); // Assert Assert.That(message[1].ConvertToInt32(), Is.EqualTo(requestId)); }
public void CreateRequestMessage_WithRequest_PacksRequest() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateRequestMessage(obj, requestId); // Assert mockPackageFactory.Verify(m => m.Pack(It.IsIn <object>(obj)), Times.Once); }
public void CreateRequestMessage_WithRequest_SerializesPackage() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateRequestMessage(obj, requestId); // Assert mockSerializer.Verify(m => m.Serialize(It.IsIn <Package>(package)), Times.Once); }
public void CreateResponse_WithResponse_SerializesPackage() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var message = messageFactory.CreateResponseMessage(obj, address, requestId, dotNetSerializer.Descriptor.InvariantName); // Assert mockSerializer.Verify(m => m.Serialize(It.IsIn <Package>(package)), Times.Once); }
public void IsValidResponseMessage_WithNullMessage_IsFalse() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); // Act var isValid = messageFactory.IsValidResponseMessage(null); // Assert Assert.That(isValid, Is.False); }
public void ExtractTopic_WithMessage_UnpacksTopicEvent() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var message = messageFactory.CreateTopicMessage(obj); // Act var topicEvent = messageFactory.ExtractTopic(message); // Assert mockPackageFactory.Verify(m => m.Unpack(It.IsIn <Package>(package)), Times.Once); }
public void ExtractTopic_WithMessage_DeserializesPackage() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var message = messageFactory.CreateTopicMessage(obj); // Act var topicEvent = messageFactory.ExtractTopic(message); // Assert mockSerializer.Verify(m => m.Deserialize <Package>(It.IsIn <byte[]>(data)), Times.Once); }
public void ExtractTopic_WithMessage_ReturnsTopicEvent() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var message = messageFactory.CreateTopicMessage(obj); // Act var topicEvent = messageFactory.ExtractTopic(message); // Assert Assert.That(topicEvent, Is.EqualTo(obj)); }
public async Task SenderReceiver_WhenBoundAndConnected_PassesMessage() { // Arrange var responseStr = "Hello, World!"; var requestStr = "Hello"; var receivedRequest = string.Empty; ushort port = 6555; var called = false; mockRequestDispatcher .Setup(m => m.Handle(ref It.Ref <RequestTask> .IsAny)) .Callback(new Handler((ref RequestTask task) => { called = true; receivedRequest = (string)task.Request; task.ResponseSender(responseStr); })); var packageFactory = new PackageFactory(); var serializer = new DotNetSerializer(); var serializerCache = new SerializerCache(); var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var sender = new NetMQSender(new DealerSocket(), messageFactory); var receiver = new NetMQReceiver(new RouterSocket(), messageFactory, requestDispatcher); var poller = new NetMQPoller(); serializerCache.AddSerializer(serializer); sender.AddAddress(TcpAddress.Localhost(port)); sender.InitializeConnection(); receiver.AddAddress(TcpAddress.Wildcard(port)); receiver.InitializeConnection(); poller.Add(sender.PollableSocket); poller.Add(receiver.PollableSocket); poller.RunAsync(); var package = new DataPackage <string>(new GuidPackageId(), requestStr); // Act var response = await sender.SendAndReceive(package, TimeSpan.FromSeconds(5)); // Cleanup poller.StopAsync(); sender.TerminateConnection(); receiver.TerminateConnection(); // Assert Assert.That(called, Is.True); Assert.That(receivedRequest, Is.EqualTo(requestStr)); Assert.That((string)response, Is.EqualTo(responseStr)); }
public void ExtractRequest_WithMessage_ReturnsSameAddress() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var message = messageFactory.CreateRequestMessage(obj, requestId); message.Push(address); // NetMQ prepends an address frame // Act var(request, retAddress, retRequestId, name) = messageFactory.ExtractRequest(message); // Assert Assert.That(retAddress, Is.EqualTo(address)); }
public void ExtractRequest_WithMessage_DeserializesPackage() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var message = messageFactory.CreateRequestMessage(obj, requestId); message.Push(address); // NetMQ prepends an address frame // Act var(request, retAddress, retRequestId, name) = messageFactory.ExtractRequest(message); // Assert mockSerializer.Verify(m => m.Deserialize <Package>(It.IsIn <byte[]>(data)), Times.Once); }
public void ExtractRequest_WithMessage_UnpacksRequestObject() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var message = messageFactory.CreateRequestMessage(obj, requestId); message.Push(address); // NetMQ prepends an address frame // Act var(request, retAddress, retRequestId, name) = messageFactory.ExtractRequest(message); // Assert mockPackageFactory.Verify(m => m.Unpack(It.IsIn <Package>(package)), Times.Once); }
public void IsValidRequestMessage_WithFiveFrameMessage_IsTrue() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var message = messageFactory.CreateRequestMessage(obj, 1); message.Push(address); // Act var isValid = messageFactory.IsValidRequestMessage(message); // Assert Assert.That(isValid, Is.True); }
public void IsValidRequestMessage_WithEmptyAddress_IsFalse() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var message = messageFactory.CreateRequestMessage(obj, requestId); message.PushEmptyFrame(); // Act var isValid = messageFactory.IsValidRequestMessage(message); // Assert Assert.That(isValid, Is.False); }
public void IsValidTopicMessage_WithWellFormedMessage_IsTrue() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var message = new NetMQMessage(2); message.Push("Topic"); message.Push(data); // Act var isValid = messageFactory.IsValidTopicMessage(message); // Assert Assert.That(isValid, Is.True); }
public void IsValidTopicMessage_WithNoData_IsFalse() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var message = new NetMQMessage(2); message.Push("Topic"); message.PushEmptyFrame(); // Act var isValid = messageFactory.IsValidTopicMessage(message); // Assert Assert.That(isValid, Is.False); }
public void IsValidResponseMessage_WithEmptyDataFrame_IsFalse() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var message = new NetMQMessage(4); message.AppendEmptyFrame(); message.Append(requestId); message.AppendEmptyFrame(); message.AppendEmptyFrame(); // Act var isValid = messageFactory.IsValidResponseMessage(message); // Assert Assert.That(isValid, Is.False); }
public void ExtractResponse_WithMessage_UnpacksResponseObject() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var message = new NetMQMessage(4); message.AppendEmptyFrame(); message.Append(requestId); message.AppendEmptyFrame(); message.Append(data); // Act var(retRequestId, response) = messageFactory.ExtractResponse(message); // Assert mockPackageFactory.Verify(m => m.Unpack(It.IsIn(package)), Times.Once); }
public void ExtractResponse_WithMessage_DeserializesPackage() { // Arrange var messageFactory = new NetMQMessageFactory(serializerCache, packageFactory); var message = new NetMQMessage(4); message.AppendEmptyFrame(); message.Append(requestId); message.AppendEmptyFrame(); message.Append(data); // Act var(retRequestId, response) = messageFactory.ExtractResponse(message); // Assert mockSerializer.Verify(m => m.Deserialize <Package>(It.IsIn <byte[]>(data)), Times.Once); }