Example #1
0
        public void when_receiving_message_then_can_send_new_message()
        {
            var secondReceiver = new TestableMessageReceiver();

            this.sender.Send(new Message("message1"));

            var    waitEvent        = new AutoResetEvent(false);
            string receiver1Message = null;
            string receiver2Message = null;

            this.receiver.MessageReceived += (s, e) =>
            {
                waitEvent.Set();
                receiver1Message = e.Message.Body;
                waitEvent.WaitOne();
            };
            secondReceiver.MessageReceived += (s, e) =>
            {
                receiver2Message = e.Message.Body;
            };

            ThreadPool.QueueUserWorkItem(_ => { this.receiver.ReceiveMessage(); });

            Assert.True(waitEvent.WaitOne(TimeSpan.FromSeconds(10)));
            this.sender.Send(new Message("message2"));
            secondReceiver.ReceiveMessage();
            waitEvent.Set();

            Assert.Equal("message1", receiver1Message);
            Assert.Equal("message2", receiver2Message);
        }
        public void when_receiving_message_then_other_receivers_cannot_see_message_but_see_other_messages()
        {
            var secondReceiver = new TestableMessageReceiver(this.connectionFactory);

            this.sender.Send(new Message("message1"));
            this.sender.Send(new Message("message2"));

            var    waitEvent        = new AutoResetEvent(false);
            string receiver1Message = null;
            string receiver2Message = null;

            this.receiver.MessageReceived += (s, e) =>
            {
                waitEvent.Set();
                receiver1Message = e.Message.Body;
                waitEvent.WaitOne();
            };
            secondReceiver.MessageReceived += (s, e) =>
            {
                receiver2Message = e.Message.Body;
            };

            ThreadPool.QueueUserWorkItem(_ => { this.receiver.ReceiveMessage(); });

            Assert.IsTrue(waitEvent.WaitOne(TimeSpan.FromSeconds(10)));
            secondReceiver.ReceiveMessage();
            waitEvent.Set();

            Assert.IsTrue("message1" == receiver1Message);
            Assert.IsTrue("message2" == receiver2Message);
        }
        public void when_receiving_message_then_can_send_new_message()
        {
            var secondReceiver = new TestableMessageReceiver(this.connectionFactory);

            this.sender.Send(new Message("message1"));

            var waitEvent = new AutoResetEvent(false);
            string receiver1Message = null;
            string receiver2Message = null;

            this.receiver.MessageReceived += (s, e) =>
            {
                waitEvent.Set();
                receiver1Message = e.Message.Body;
                waitEvent.WaitOne();
            };
            secondReceiver.MessageReceived += (s, e) =>
            {
                receiver2Message = e.Message.Body;
            };

            ThreadPool.QueueUserWorkItem(_ => { this.receiver.ReceiveMessage(); });

            Assert.IsTrue(waitEvent.WaitOne(TimeSpan.FromSeconds(10)));
            this.sender.Send(new Message("message2"));
            secondReceiver.ReceiveMessage();
            waitEvent.Set();

            Assert.IsTrue("message1" == receiver1Message);
            Assert.IsTrue("message2" == receiver2Message);
        }
Example #4
0
        public void WhenReceivingMessageThenCanSendNewMessage()
        {
            var secondReceiver = new TestableMessageReceiver(this._connectionFactory);

            this._sender.Send(new Message("message1"));

            var waitEvent = new AutoResetEvent(false);

            string receiver1Message = null;
            string receiver2Message = null;

            this._receiver.MessageReceived += (s, e) => {
                waitEvent.Set();
                receiver1Message = e.Message.Body;
                waitEvent.WaitOne();
            };

            secondReceiver.MessageReceived += (s, e) => {
                receiver2Message = e.Message.Body;
            };

            ThreadPool.QueueUserWorkItem(_ => this._receiver.ReceiveMessage());

            Assert.IsTrue(waitEvent.WaitOne(TimeSpan.FromSeconds(10)));

            this._sender.Send(new Message("message2"));
            secondReceiver.ReceiveMessage();
            waitEvent.Set();

            Assert.AreEqual("message1", receiver1Message);
            Assert.AreEqual("message2", receiver2Message);
        }
        public given_sender_and_receiver()
        {
            this.connectionFactory = System.Data.Entity.Database.DefaultConnectionFactory;
            this.sender = new MessageSender(this.connectionFactory, "TestSqlMessaging", "Test.Commands");
            this.receiver = new TestableMessageReceiver(this.connectionFactory);

            MessagingDbInitializer.CreateDatabaseObjects(this.connectionFactory.CreateConnection("TestSqlMessaging").ConnectionString, "Test", true);
        }
Example #6
0
        public given_sender_and_receiver()
        {
            //this.connectionFactory = System.Data.Entity.Database.DefaultConnectionFactory;
            this.sender   = new MessageSender("TestSqlMessaging", "Test.Commands");
            this.receiver = new TestableMessageReceiver();

            MessagingDbInitializer.CreateDatabaseObjects(this.connectionFactory.CreateConnection("TestSqlMessaging").ConnectionString, "Test", true);
        }
        public given_sender_and_receiver()
        {
            // TODO: DEPRECATED - The default connection factory should be set in the config file or using the DbConfiguration class
            this.connectionFactory = System.Data.Entity.Database.DefaultConnectionFactory;
            this.sender            = new MessageSender(this.connectionFactory, "TestSqlMessaging", "Test.Commands");
            this.receiver          = new TestableMessageReceiver(this.connectionFactory);

            MessagingDbInitializer.CreateDatabaseObjects(this.connectionFactory.CreateConnection("TestSqlMessaging").ConnectionString, "Test", true);
        }
Example #8
0
        public void Setup()
        {
            this._connectionFactory = System.Data.Entity.Database.DefaultConnectionFactory;
            this._sender            = new MessageSender(this._connectionFactory, "TestSqlMessaging", "Test.Commands");
            this._receiver          = new TestableMessageReceiver(this._connectionFactory);

            MessagingDbInitializer.CreateDatabaseObjects(
                this._connectionFactory.CreateConnection("TestSqlMessaging").ConnectionString, "Test", true);
        }