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 Deserialize_WithStringDataZeroOffset_ReproducesString() { // Arrange var serializer = new DotNetSerializer(); var str = "Some string"; var data = serializer.Serialize(str); // Act var deserializedStr = serializer.Deserialize <string>(data, 0); // Assert Assert.AreEqual(str, deserializedStr); }
public void Deserialize_WithStringData_ReproducesString() { // Arrange var serializer = new DotNetSerializer(); var str = "Some string"; var bytes = serializer.Serialize(str); // Act var deserializedStr = serializer.Deserialize <string>(bytes); // Assert Assert.That(deserializedStr, Is.EqualTo(str)); }
public void Serialize_WithString_ProducesByteArray() { // Arrange var serializer = new DotNetSerializer(); var str = "Some string"; // Act var bytes = serializer.Serialize(str); // Assert Assert.That(bytes, Is.Not.Null); CollectionAssert.IsNotEmpty(bytes); }
public void Deserialize_WithStringDataOffset_ReproducesString() { // Arrange var serializer = new DotNetSerializer(); var str = "Some string"; var offset = (new Random()).Next(100); var data = serializer.Serialize(str, offset); // Act var deserialized = serializer.Deserialize <string>(data, offset); // Assert Assert.AreEqual(str, deserialized); }
public void Serialize_WithStringAndOffset_ConsistentWithNoOffset() { // Arrange var serializer = new DotNetSerializer(); var offset = (new Random()).Next(100); var str = "Some string"; // Act var bytes1 = serializer.Serialize(str); var bytes2 = serializer.Serialize(str, offset).Skip(offset).ToArray(); // Assert Assert.AreEqual(bytes1, bytes2); }