public async Task DeliversMessagesByVisibleTimeAndNotByInsertionTime()
        {
            var rebusTime          = new DefaultRebusTime();
            var loggerFactory      = new ConsoleLoggerFactory(false);
            var connectionProvider = new DbConnectionProvider(MySqlTestHelper.ConnectionString, loggerFactory);
            var asyncTaskFactory   = new TplAsyncTaskFactory(loggerFactory);

            var transport = new MySqlTransport(
                connectionProvider,
                QueueName,
                loggerFactory,
                asyncTaskFactory,
                rebusTime,
                new MySqlTransportOptions(connectionProvider));

            transport.EnsureTableIsCreated();
            transport.Initialize();

            var now = DateTime.Now;

            await PutInQueue(transport, GetTransportMessage("first message"));
            await PutInQueue(transport, GetTransportMessage("second message", deferredUntilTime : now.AddMinutes(-1)));
            await PutInQueue(transport, GetTransportMessage("third message", deferredUntilTime : now.AddMinutes(-2)));

            var firstMessage = await ReceiveMessageBody(transport);

            var secondMessage = await ReceiveMessageBody(transport);

            var thirdMessage = await ReceiveMessageBody(transport);

            // expect messages to be received in reverse order because of their visible times
            Assert.That(firstMessage, Is.EqualTo("third message"));
            Assert.That(secondMessage, Is.EqualTo("second message"));
            Assert.That(thirdMessage, Is.EqualTo("first message"));
        }
        public ITransport CreateOneWayClient()
        {
            var rebusTime            = new DefaultRebusTime();
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var connectionProvider   = new DbConnectionProvider(MySqlTestHelper.ConnectionString, consoleLoggerFactory);
            var asyncTaskFactory     = new TplAsyncTaskFactory(consoleLoggerFactory);
            var transport            = new MySqlTransport(connectionProvider, null, consoleLoggerFactory, asyncTaskFactory, rebusTime, new MySqlTransportOptions(connectionProvider));

            _disposables.Add(transport);

            transport.Initialize();

            return(transport);
        }
예제 #3
0
        protected override void SetUp()
        {
            MySqlTestHelper.DropTableIfExists(_tableName);
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var asyncTaskFactory     = new TplAsyncTaskFactory(consoleLoggerFactory);
            var connectionHelper     = new MySqlConnectionHelper(MySqlTestHelper.ConnectionString);

            _transport = new MySqlTransport(connectionHelper, _tableName, QueueName, consoleLoggerFactory, asyncTaskFactory);
            _transport.EnsureTableIsCreated();

            Using(_transport);

            _transport.Initialize();
            _cancellationToken = new CancellationTokenSource().Token;
        }
예제 #4
0
        protected override void SetUp()
        {
            MySqlTestHelper.DropAllTables();

            var rebusTime            = new DefaultRebusTime();
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var connectionProvider   = new DbConnectionProvider(MySqlTestHelper.ConnectionString, consoleLoggerFactory);
            var asyncTaskFactory     = new TplAsyncTaskFactory(consoleLoggerFactory);

            _transport = new MySqlTransport(connectionProvider, QueueName, consoleLoggerFactory, asyncTaskFactory, rebusTime, new MySqlTransportOptions(connectionProvider));
            _transport.EnsureTableIsCreated();

            Using(_transport);

            _transport.Initialize();

            _cancellationToken = new CancellationTokenSource().Token;
        }
예제 #5
0
        protected override void SetUp()
        {
            // start clean
            MySqlTestHelper.DropAllTables();

            // end clean
            Using(new DisposableCallback(MySqlTestHelper.DropAllTables));

            var loggerFactory      = new ListLoggerFactory();
            var connectionProvider = new DbConnectionProvider(MySqlTestHelper.ConnectionString, loggerFactory);

            _subscriptionStorage = new MySqlSubscriptionStorage(connectionProvider, "Subscriptions", isCentralized: true, loggerFactory);
            _subscriptionStorage.EnsureTableIsCreated();

            _subscriberTransport = Using(new MySqlTransport(connectionProvider, "subscriber", loggerFactory, new TplAsyncTaskFactory(loggerFactory), new FakeRebusTime(), new MySqlTransportOptions(connectionProvider)));
            _subscriberTransport.EnsureTableIsCreated();
            _subscriberTransport.Initialize();
        }
        public ITransport Create(string inputQueueAddress)
        {
            var tableName = ("rebus_messages_" + TestConfig.Suffix).TrimEnd('_');

            _tablesToDrop.Add(tableName);

            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var connectionHelper     = new MySqlConnectionHelper(MySqlTestHelper.ConnectionString);
            var asyncTaskFactory     = new TplAsyncTaskFactory(consoleLoggerFactory);
            var transport            = new MySqlTransport(connectionHelper, tableName, inputQueueAddress, consoleLoggerFactory, asyncTaskFactory);

            _disposables.Add(transport);

            transport.EnsureTableIsCreated();
            transport.Initialize();

            return(transport);
        }
        public ITransport Create(string inputQueueAddress)
        {
            var tableName = ("RebusMessages_" + TestConfig.Suffix).TrimEnd('_');

            MySqlTestHelper.DropTable(tableName);

            _tablesToDrop.Add(tableName);

            var rebusTime            = new DefaultRebusTime();
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var connectionProvider   = new DbConnectionProvider(MySqlTestHelper.ConnectionString, consoleLoggerFactory);
            var asyncTaskFactory     = new TplAsyncTaskFactory(consoleLoggerFactory);
            var transport            = new MySqlTransport(connectionProvider, inputQueueAddress, consoleLoggerFactory, asyncTaskFactory, rebusTime, new MySqlTransportOptions(connectionProvider));

            _disposables.Add(transport);

            transport.EnsureTableIsCreated();
            transport.Initialize();

            return(transport);
        }