Example #1
0
        public void Start_FirstMessageOnQueueDoesNotMeetExpectations_DropsUninterestingMessageAndMovesOn()
        {
            // Arrange
            MsmqHelpers.Purge("orderservice");
            MsmqHelpers.Purge("shippingservice");

            UnicastBus  bus     = InternalBusCreator.CreateBus();
            var         stuffer = new MessageStuffer(bus);
            ServiceStub service = Configure.Stub().NServiceBusSerializers().Create(@".\Private$\orderservice");

            service.Setup()
            .Expect <IPlaceAnOrder>(msg => msg.Product == "stockings")
            .Send <IOrderWasPlaced>(msg => msg.OrderedProduct = "stockings", "shippingservice");

            stuffer.PutMessageOnQueue <IPlaceAnOrder>(msg => { msg.Product = "somethingelse"; }, @"orderservice");
            stuffer.PutMessageOnQueue <IPlaceAnOrder>(msg => { msg.Product = "stockings"; }, @"orderservice");

            // Act
            service.Start();
            while (MsmqHelpers.GetMessageCount("shippingservice") == 0)
            {
            }
            StopService(service);


            // Assert
            Assert.That(MsmqHelpers.GetMessageCount("orderservice"), Is.EqualTo(0), "meesage which did not meet the expectations was left behind");
            Assert.That(MsmqHelpers.GetMessageCount("shippingservice"), Is.EqualTo(1), "shipping service did not recieve send");
        }
Example #2
0
        public void Start_ExpectationsAreMet_SendsMessages()
        {
            // Arrange
            MsmqHelpers.Purge("orderservice");
            MsmqHelpers.Purge("shippingservice");
            MsmqHelpers.Purge("testclient");

            UnicastBus  bus     = InternalBusCreator.CreateBus();
            var         stuffer = new MessageStuffer(bus);
            ServiceStub service = Configure.Stub().NServiceBusSerializers().Create(@".\Private$\orderservice");

            service.Setup()
            .Expect <IPlaceAnOrder>(msg => msg.Product == "stockings")
            .Send <IOrderWasPlaced>(msg => msg.OrderedProduct = "stockings", "shippingservice")
            .Send <IOrderWasPlaced>(msg => msg.OrderedProduct = "stockings", "testclient");

            stuffer.PutMessageOnQueue <IPlaceAnOrder>(msg => { msg.Product = "stockings"; }, @"orderservice");

            // Act
            service.Start();

            while (MsmqHelpers.GetMessageCount("shippingservice") == 0)
            {
            }
            StopService(service);

            // Assert
            Assert.That(MsmqHelpers.GetMessageCount("shippingservice"), Is.EqualTo(1));
            Assert.That(MsmqHelpers.GetMessageCount("testclient"), Is.EqualTo(1));
        }
Example #3
0
        public void Start_ExpectationsAreMetTwice_SendsMessagesTwice()
        {
            // Arrange
            MsmqHelpers.Purge("orderservice");
            MsmqHelpers.Purge("shippingservice");
            MsmqHelpers.Purge("testclient");

            UnicastBus bus = InternalBusCreator.CreateBus();
            var stuffer = new MessageStuffer(bus);
            ServiceStub service = Configure.Stub().NServiceBusSerializers().Create(@".\Private$\orderservice");

            service.Setup()
                   .Expect<IPlaceAnOrder>(msg => msg.Product == "stockings")
                   .Send<IOrderWasPlaced>(msg => msg.OrderedProduct = "stockings", "shippingservice")
                   .Send<IOrderWasPlaced>(msg => msg.OrderedProduct = "stockings", "testclient");

            stuffer.PutMessageOnQueue<IPlaceAnOrder>(msg => { msg.Product = "stockings"; }, @"orderservice");
            stuffer.PutMessageOnQueue<IPlaceAnOrder>(msg => { msg.Product = "stockings"; }, @"orderservice");

            // Act
            service.Start();

            while (MsmqHelpers.GetMessageCount("shippingservice") < 2) { }
            while (MsmqHelpers.GetMessageCount("testclient") < 2) { }
            StopService(service);

            // Assert
            Assert.That(MsmqHelpers.GetMessageCount("shippingservice"), Is.EqualTo(2));
            Assert.That(MsmqHelpers.GetMessageCount("testclient"), Is.EqualTo(2));
        }
        public void Pick_MessageOnQueue_MessageIsDeserialized()
        {
            // Arrange
            object[] message;

            var bus = InternalBusCreator.CreateBus();

            var picker  = new MessagePicker(bus);
            var stuffer = new MessageStuffer(bus);

            stuffer.PutMessageOnQueue <IPlaceAnOrder>(msg => { msg.Product = "a"; }, "orderservice");

            // Act
            message = picker.PickMessage(@".\Private$\orderservice");

            // Assert
            Assert.That(message.Length, Is.EqualTo(1));
        }
Example #5
0
        public void Pick_MessageOnQueue_MessageIsDeserialized()
        {
            // Arrange
            object[] message;

            using (var bus = InternalBusCreator.CreateBus())
            {
                var picker = new MessagePicker(bus);
                var stuffer = new MessageStuffer(bus);

                stuffer.PutMessageOnQueue<IPlaceAnOrder>(msg => { msg.Product = "a"; }, "orderservice");

                // Act
                message = picker.PickMessage(@".\Private$\orderservice");
            }

            // Assert
            Assert.That(message.Length, Is.EqualTo(1));
        }
Example #6
0
        private void ExecuteBatch(object batch)
        {
            var stuffBatch = batch as StuffBatch;

            if (stuffBatch == null)
            {
                return;
            }

            int i = 1;

            foreach (var item in stuffBatch.items)
            {
                try
                {
                    IMessageStuffer  messageStuffer   = new MessageStuffer(item.SelectedType);
                    VisualSerializer visualSerializer = new VisualSerializer(item.SelectedType);

                    var messages = visualSerializer.GetDeserializedType(item.MessageContent);
                    messageStuffer.StuffMessagesToQueue(item.QueueName, messages);

                    SetStatus(item, i, null);
                }
                catch (Exception e)
                {
                    SetStatus(item, i, e);
                }

                if (stuffBatch.delay > 0)
                {
                    Thread.Sleep(1000 * stuffBatch.delay);
                }

                i++;
            }

            ReportBatchFinished();
        }
Example #7
0
        public void Start_FirstMessageOnQueueDoesNotMeetExpectations_DropsUninterestingMessageAndMovesOn()
        {
            // Arrange
            MsmqHelpers.Purge("orderservice");
            MsmqHelpers.Purge("shippingservice");

            UnicastBus bus = InternalBusCreator.CreateBus();
            var stuffer = new MessageStuffer(bus);
            ServiceStub service = Configure.Stub().NServiceBusSerializers().Create(@".\Private$\orderservice");

            service.Setup()
                   .Expect<IPlaceAnOrder>(msg => msg.Product == "stockings")
                   .Send<IOrderWasPlaced>(msg => msg.OrderedProduct = "stockings", "shippingservice");

            stuffer.PutMessageOnQueue<IPlaceAnOrder>(msg => { msg.Product = "somethingelse"; }, @"orderservice");
            stuffer.PutMessageOnQueue<IPlaceAnOrder>(msg => { msg.Product = "stockings"; }, @"orderservice");

            // Act
            service.Start();
            while (MsmqHelpers.GetMessageCount("shippingservice") == 0) { }
            StopService(service);

            // Assert
            Assert.That(MsmqHelpers.GetMessageCount("orderservice"), Is.EqualTo(0), "meesage which did not meet the expectations was left behind");
            Assert.That(MsmqHelpers.GetMessageCount("shippingservice"), Is.EqualTo(1), "shipping service did not recieve send");
        }