Exemplo n.º 1
0
        public void PausingEventListenerPausesDeliveryInQueue(string queueName)
        {
            var context  = new TestBusContext();
            var sender   = context.CreateCommandSender();
            var receiver = context.CreateCommandReceiver(queueName);

            receiver.DeclareCommandQueue();

            var command = new CommandMessage
            {
                DestinationQueue = queueName,
                CorrelationId    = Guid.NewGuid(),
                Body             = Encoding.Unicode.GetBytes("Hello World")
            };

            bool messageReceived = false;

            receiver.StartReceivingCommands(e =>
            {
                messageReceived = true;
                return(new CommandMessage());
            });

            // Act
            receiver.Pause();

            sender.SendCommandAsync(command);

            Thread.Sleep(WaitTime);

            // Assert
            Assert.AreEqual(false, messageReceived);
        }
Exemplo n.º 2
0
        public void SentMessageIsProperlySentAndReceivedWithManipulations(string startMessage, string appendMessage)
        {
            // Arrange
            var context  = new TestBusContext();
            var sender   = context.CreateCommandSender();
            var receiver = context.CreateCommandReceiver("dest.queue");

            receiver.DeclareCommandQueue();

            var command = new CommandMessage
            {
                DestinationQueue = "dest.queue",
                CorrelationId    = Guid.NewGuid(),
                Body             = Encoding.Unicode.GetBytes(startMessage)
            };

            // Act
            receiver.StartReceivingCommands(e =>
            {
                var textBody = Encoding.Unicode.GetString(e.Body);
                return(new CommandMessage {
                    Body = Encoding.Unicode.GetBytes(textBody + appendMessage)
                });
            });

            var result = sender.SendCommandAsync(command);

            // Assert
            Assert.AreEqual(startMessage + appendMessage, Encoding.Unicode.GetString(result.Result.Body));
        }
Exemplo n.º 3
0
        public void SentMessageIsProperlyReceivedAndReturned(string destQueue, string expected)
        {
            // Arrange
            var context  = new TestBusContext();
            var sender   = context.CreateCommandSender();
            var receiver = context.CreateCommandReceiver(destQueue);

            receiver.DeclareCommandQueue();

            var command = new CommandMessage
            {
                DestinationQueue = destQueue,
                CorrelationId    = Guid.NewGuid()
            };

            // Act
            receiver.StartReceivingCommands(e => new CommandMessage {
                Body = Encoding.Unicode.GetBytes(expected)
            });

            var result = sender.SendCommandAsync(command);

            // Assert
            Assert.AreEqual(expected, Encoding.Unicode.GetString(result.Result.Body));
        }
Exemplo n.º 4
0
        public void CreateTestCommandSenderDeclaresNewQueue()
        {
            TestBusContext context = new TestBusContext();
            var            sender  = context.CreateCommandSender();

            Assert.IsInstanceOfType(typeof(TestCommandSender), sender.GetType().BaseType);
            Assert.AreEqual(1, context.CommandQueues.Count);
        }
Exemplo n.º 5
0
        public void GenerateRandomQueueNameTest()
        {
            TestBusContext context = new TestBusContext();
            var            sender  = (TestCommandSender)context.CreateCommandSender();

            var result = sender.GenerateRandomQueueName();

            Assert.AreEqual(30, result.Length);
        }
Exemplo n.º 6
0
        public void CreateCommandSender_ReturnsTestCommandSender()
        {
            // Arrange
            TestBusContext context = new TestBusContext();

            // Act
            var sender = context.CreateCommandSender();

            // Assert
            Assert.IsInstanceOfType(sender, typeof(TestCommandSender));
        }
Exemplo n.º 7
0
        public void CreateMessageSenderReturnsCommandSender()
        {
            // Arrange
            var context = new TestBusContext();

            // Act
            var result = context.CreateCommandSender();

            // Assert
            Assert.IsInstanceOfType(result, typeof(TestCommandSender));
        }
Exemplo n.º 8
0
        public async Task TestBusIntegrationTest()
        {
            TestBusContext context  = new TestBusContext();
            var            sender   = context.CreateCommandSender();
            var            receiver = context.CreateCommandReceiver("queue");

            receiver.DeclareCommandQueue();
            receiver.StartReceivingCommands((cm) =>
            {
                var message = "message2";
                return(Task.Run(() => new CommandResponseMessage(message, "", cm.CorrelationId)));
            });

            var mess   = new CommandRequestMessage("message", null);
            var result = await sender.SendCommandAsync(mess, "queue");

            Assert.AreEqual("message2", result.Message);
        }
Exemplo n.º 9
0
        public async Task SendCommandAsync()
        {
            TestBusContext context = new TestBusContext();
            var            sender  = (TestCommandSender)context.CreateCommandSender();

            var generatedQueue = context.CommandQueues.First().Value;

            context.DeclareCommandQueue("queue");

            var message = new CommandRequestMessage("message", null);
            var task    = sender.SendCommandAsync(message, "queue");

            Assert.AreEqual(1, sender.CallbackMapper.Count);

            var dequeue = context.CommandQueues["queue"].Dequeue();

            generatedQueue.Enqueue(new TestBusCommandMessage(new CommandResponseMessage("message", typeof(string).FullName, null), dequeue.Props));

            var result = await task;

            Assert.AreEqual("message", result.Message);
        }