Esempio n. 1
0
        public void When_Create_Builder_With_Logger_Factory_Should_Create_Logger()
        {
            _loggerFactoryMock.Invocations.Clear();
            var amqpBuilder = new RabbitMqBuilder(_configMock.Object, _loggerFactoryMock.Object, _messagingWorkersFactoryMock.Object)
            {
                ConnectionFactory = _connectionFactoryMock.Object
            };

            _loggerFactoryMock.Verify(l => l.CreateLogger(LoggerName), Times.Once);
        }
        public void Subscribe()
        {
            var settingsMock  = RabbitMqSettingsTest.GetSettingsMock();
            var senderBuilder = new RabbitMqBuilder(settingsMock.Object);

            senderBuilder.Subscribe(async(DummyClass x) => { });
            senderBuilder.Subscribe(async(DummyClass1 x) => { });

            //TODO Implement good tests
        }
        public async void SendReceive_ThrowRetry()
        {
            var rabbitMqSettings = new RabbitMqSettings(
                "localhost",
                "guest",
                "guest",
                "LessPaper.Shared.Queueing.IntegrationTest.2");

            var counter          = 0;
            var lockObj          = new object();
            var successfulCalled = new AutoResetEvent(false);

            var exampleText = "Some data";

            var builder   = new RabbitMqBuilder(rabbitMqSettings);
            var finalized = await builder
                            .Subscribe(async delegate(DummyClass dto)
            {
                if (dto.DummyProperty == exampleText)
                {
                    lock (lockObj)
                    {
                        counter += 1;
                        switch (counter)
                        {
                        case 2:
                            successfulCalled.Set();
                            break;

                        case 1:
                            throw new Exception("Test exception");
                        }
                    }
                }
                else
                {
                    Assert.True(false, "Wrong data received");
                }
            })
                            .Start();


            var myObj = new DummyClass()
            {
                DummyProperty = exampleText
            };

            await finalized.Send(myObj);

            // Wait for receiving
            Assert.True(successfulCalled.WaitOne(TimeSpan.FromSeconds(5)));


            await finalized.Stop();
        }
Esempio n. 4
0
 public void When_Create_Builder_Without_Connection_Factory_Should_Get_RabbitUrlKey_Configuration_Value()
 {
     _configMock.Invocations.Clear();
     try
     {
         var amqpBuilder = new RabbitMqBuilder(_configMock.Object, _loggerFactoryMock.Object, _messagingWorkersFactoryMock.Object);
     }
     catch //Should throws exception because the new ConnectionFactory could not CreateConnection.
     {
         _configMock.Verify(s => s.GetSection(EnvironmentConstants.MessageBrokerUrl), Times.Once);
     }
 }
Esempio n. 5
0
        public RabbitMqBuilderTest()
        {
            const MockBehavior mockBehavior = MockBehavior.Strict;

            SetupLoggerMock(mockBehavior);
            SetupLoggerFactoryMock(mockBehavior);
            SetupConnectionMock(mockBehavior);
            SetupConnectionFactoryMock(mockBehavior);
            SetupSettingsMock(mockBehavior);
            SetupMessagingWorkersFactoryMock(mockBehavior);
            _builder = new RabbitMqBuilder(_configMock.Object, _loggerFactoryMock.Object, _messagingWorkersFactoryMock.Object)
            {
                ConnectionFactory = _connectionFactoryMock.Object
            };
        }
        public async void SendReceiveSingle()
        {
            var rabbitMqSettings = new RabbitMqSettings(
                "localhost",
                "guest",
                "guest",
                "LessPaper.Shared.Queueing.IntegrationTest.1");

            var successfulCalled = new AutoResetEvent(false);

            var exampleText = "Some data";

            var builder   = new RabbitMqBuilder(rabbitMqSettings);
            var finalized = await builder
                            .Subscribe(async delegate(DummyClass dto)
            {
                if (dto.DummyProperty == exampleText)
                {
                    successfulCalled.Set();
                }
            })
                            .Start();


            var myObj = new DummyClass()
            {
                DummyProperty = exampleText
            };

            await finalized.Send(myObj);

            // Wait for receiving
            Assert.True(successfulCalled.WaitOne(2000));

            await finalized.Stop();
        }