public void a_limited_user_can_NOT_delete_an_existing_destination()
        {
            // Admin connection to make the routing
            _messaging.CreateDestination <IMetadataFile>("test_permissions", Expires.Never);

            // Limited user to use it
            var credentials = _query.GetLimitedUser("test_permissions");
            var limitedConn = ConfigurationHelpers.RabbitMqConnectionWithConfigSettingsAndCustomCredentials(
                credentials.UserName,
                credentials.Password
                );

            bool ok = false;

            try
            {
                limitedConn.WithChannel(conn => conn.QueueDelete("test_permissions", false, false));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                ok = ex.Message.Contains("ACCESS_REFUSED");
            }

            _query.DeleteUser(credentials);
            Assert.That(ok, Is.True, "QueueDelete passed, but should have been blocked");
        }
Exemple #2
0
        public void a_queue_with_no_time_restriction_can_receive_messages_after_any_delay()
        {
            messaging.CreateDestination <IMsg>("Test_Destination_unbound", Expires.Never);
            messaging.SendMessage(testMessage);

            Thread.Sleep(1000); // 'huge' delay

            var message = messaging.TryStartMessage <IMsg>("Test_Destination_unbound");

            Assert.That(message, Is.Not.Null);
            message.Finish();
        }
        public void Should_be_able_to_send_and_receive_messages_by_interface_type_and_destination_name()
        {
            messaging.CreateDestination <IMsg>("Test_Destination", Expires.Never);
            messaging.SendMessage(testMessage);

            var finalObject = (IMetadataFile)messaging.GetMessage <IMsg>("Test_Destination");

            Assert.That(finalObject, Is.Not.Null);
            Assert.That(finalObject.CorrelationId, Is.EqualTo(testMessage.CorrelationId));
            Assert.That(finalObject.Contents, Is.EqualTo(testMessage.Contents));
            Assert.That(finalObject.FilePath, Is.EqualTo(testMessage.FilePath));
            Assert.That(finalObject.HashValue, Is.EqualTo(testMessage.HashValue));
            Assert.That(finalObject.MetadataName, Is.EqualTo(testMessage.MetadataName));
            Assert.That(finalObject.Equals(testMessage), Is.False);
        }
Exemple #4
0
        public void can_inspect_all_exchanges_queues_and_bindings_of_a_running_system()
        {
            _messaging.CreateDestination <IMetadataFile>("Test_Destination_1", Expires.Never);
            _messaging.CreateDestination <IMetadataFile>("Test_Destination_2", Expires.Never);

            var bindings = _query.ListBindings();

            Assert.That(bindings.Length, Is.GreaterThanOrEqualTo(6), "Too few bindings");

            var destinations = _query.ListDestinations();

            Assert.That(destinations.Length, Is.GreaterThanOrEqualTo(2), "Too few bindings");

            var sources = _query.ListSources();

            Assert.That(sources.Length, Is.GreaterThanOrEqualTo(4), "Too few exchanges");
        }
        public void When_setting_up_a_named_destination()
        {
            typeRouter    = Substitute.For <ITypeRouter>();
            messageRouter = Substitute.For <IMessageRouter>();
            serialiser    = Substitute.For <IMessageSerialiser>();

            messaging = new MessagingBase(typeRouter, messageRouter, serialiser, "test");
            messaging.ResetCaches();
            messaging.CreateDestination <IMetadataFile>("MyServiceDestination", Expires.Never);
        }
        public void When_setting_up_a_named_destination()
        {
            typeRouter = Substitute.For<ITypeRouter>();
            messageRouter = Substitute.For<IMessageRouter>();
            serialiser = Substitute.For<IMessageSerialiser>();

            messaging = new MessagingBase(typeRouter, messageRouter, serialiser);
            messaging.ResetCaches();
            messaging.CreateDestination<IMetadataFile>("MyServiceDestination");
        }
        public void sending_a_message_without_giving_a_correlation_id_sets_a_new_guid()
        {
            messaging.CreateDestination <IMsg>("Test_Destination", Expires.Never);
            messaging.SendMessage(testMessage);
            messaging.SendMessage(testMessage);

            var message1 = messaging.TryStartMessage <IMsg>("Test_Destination");

            Assert.That(message1, Is.Not.Null, "did not get message 1");
            Assert.That(message1.Properties.CorrelationId, Is.Not.Null, "message 1 had an empty correlation id");

            var message2 = messaging.TryStartMessage <IMsg>("Test_Destination");

            Assert.That(message2, Is.Not.Null, "did not get message 2");
            Assert.That(message2.Properties.CorrelationId, Is.Not.Null, "message 2 had an empty correlation id");


            Assert.That(message2.Properties.CorrelationId, Is.Not.EqualTo(message1.Properties.CorrelationId),
                        "messages had the same correlation ID");

            message1.Finish();
            message2.Finish();
        }