Ejemplo n.º 1
0
        public void CompleteTask_WithNoTaskStarted_DoesNothing()
        {
            // Arrange
            var taskManager = new RemoteTaskManager <object, int>(firstId, nextId);

            // Act
            TestDelegate complete = () => taskManager.CompleteTask(10, result);

            // Assert
            Assert.That(complete, Throws.Nothing);
        }
Ejemplo n.º 2
0
        public async Task StartRemoteTask_WithResult_ReturnsResult()
        {
            // Arrange
            var          taskManager = new RemoteTaskManager <object, int>(firstId, nextId);
            var          id          = 0;
            Action <int> action      = i => { id = i; };

            // Act
            var task = taskManager.StartRemoteTask(action, timeout);

            taskManager.CompleteTask(id, result);

            var res = await task;

            // Assert
            Assert.That(res, Is.EqualTo(result));
        }
Ejemplo n.º 3
0
        private void PendingMessage(object sender, NetMQSocketEventArgs e)
        {
            NetMQMessage responseMessage = null;

            if (!socket.TryReceiveMultipartMessage(ref responseMessage, 4))
            {
                return;
            }

            Task.Run(() =>
            {
                if (!messageFactory.IsValidResponseMessage(responseMessage))
                {
                    return;
                }

                var(requestId, response) = messageFactory.ExtractResponse(responseMessage);
                taskManager.CompleteTask(requestId, response);
            });
        }