public SqlOutboxWritingMessageTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupMessageDb();

            _sqlOutbox = new MsSqlOutbox(_msSqlTestHelper.OutboxConfiguration);
            var messageHeader = new MessageHeader(
                messageId: Guid.NewGuid(),
                topic: "test_topic",
                messageType: MessageType.MT_DOCUMENT,
                timeStamp: DateTime.UtcNow.AddDays(-1),
                handledCount: 5,
                delayedMilliseconds: 5,
                correlationId: Guid.NewGuid(),
                replyTo: "ReplyAddress",
                contentType: "text/plain");

            messageHeader.Bag.Add(_key1, _value1);
            messageHeader.Bag.Add(_key2, _value2);
            messageHeader.Bag.Add(_key3, _value3);
            messageHeader.Bag.Add(_key4, _value4);
            messageHeader.Bag.Add(_key5, _value5);

            _message = new Message(messageHeader, new MessageBody("message body"));
            _sqlOutbox.Add(_message);
        }
Esempio n. 2
0
        private static async Task StartSqlServerContainer(string password, int port)
        {
            ProcessStartInfo startInfo = new ProcessStartInfo(
                DOCKER_PROCESS,
                $"run --rm -e \"ACCEPT_EULA=Y\" -e \"SA_PASSWORD={password}\" -e \"MSSQL_PID=Express\" -e \"TZ=Europe/London\" -p{port}:1433 -d --name={MS_SQL_CONTAINER_NAME} mcr.microsoft.com/mssql/server:latest");
            Process startProcess = Process.Start(startInfo);
            await startProcess.WaitForExitAsync();

            string connectionString = MsSqlTestHelper.GetMsSqlConnectionString();

            while (true)
            {
                try
                {
                    MsSqlTestHelper.OpenConnection(connectionString);
                }
                catch
                {
                    Console.WriteLine("Waiting for My SQL to initialise...");
                    Thread.Sleep(5000);
                    continue;
                }

                break;
            }
        }
        public MsSqlMessageConsumerRequeueTests()
        {
            var myCommand = new MyCommand {
                Value = "Test"
            };
            Guid   correlationId = Guid.NewGuid();
            string replyTo       = "http:\\queueUrl";
            string contentType   = "text\\plain";
            var    channelName   = $"Consumer-Requeue-Tests-{Guid.NewGuid()}";
            string topicName     = $"Consumer-Requeue-Tests-{Guid.NewGuid()}";

            _message = new Message(
                new MessageHeader(myCommand.Id, topicName, MessageType.MT_COMMAND, correlationId, replyTo, contentType),
                new MessageBody(JsonSerializer.Serialize(myCommand, JsonSerialisationOptions.Options))
                );

            var testHelper = new MsSqlTestHelper();

            testHelper.SetupQueueDb();

            _subscription = new MsSqlSubscription <MyCommand>(new SubscriptionName(channelName),
                                                              new ChannelName(topicName), new RoutingKey(topicName));
            _producer       = new MsSqlMessageProducerFactory(testHelper.QueueConfiguration).Create();
            _channelFactory = new ChannelFactory(new MsSqlMessageConsumerFactory(testHelper.QueueConfiguration));
        }
        public SqlOutboxWritingMessagesAsyncTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupMessageDb();

            _sqlOutbox = new MsSqlOutbox(_msSqlTestHelper.OutboxConfiguration);
        }
        protected override IViewManager <TViewInstance> CreateViewManager <TViewInstance>(bool enableBatchDispatch = false)
        {
            var tableName = typeof(TViewInstance).Name;

            if (typeof(TViewInstance) == typeof(ViewRoot))
            {
                MsSqlTestHelper.DropTable("ViewChilds");
            }

            if (typeof(TViewInstance) == typeof(GeneratedIds))
            {
                MsSqlTestHelper.DropTable("StoredIds");
            }

            MsSqlTestHelper.DropTable(tableName);
            MsSqlTestHelper.DropTable(tableName + "_Position");

            var viewManager = new EntityFrameworkViewManager <TViewInstance>(_connectionString)
            {
                BatchDispatchEnabled = enableBatchDispatch
            };

            _createdEntityFrameworkViewManagers.Add(viewManager);

            return(viewManager);
        }
        public void Establish()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupCommandDb();

            _sqlCommandStore = new MsSqlCommandStore(_msSqlTestHelper.CommandStoreConfiguration);
        }
Esempio n. 7
0
        public SqlMessageStoreWritngMessagesAsyncTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupMessageDb();

            _sqlMessageStore = new MsSqlMessageStore(_msSqlTestHelper.MessageStoreConfiguration);
        }
        public SqlInboxEmptyWhenSearchedAsyncTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupCommandDb();

            _sqlInbox = new MsSqlInbox(_msSqlTestHelper.InboxConfiguration);
        }
        public SqlCommandStoreEmptyWhenSearchedAsyncTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupCommandDb();

            _sqlCommandStore = new MsSqlCommandStore(_msSqlTestHelper.CommandStoreConfiguration);
        }
Esempio n. 10
0
        protected override IViewManager <TViewInstance> CreateViewManager <TViewInstance>(bool enableBatchDispatch = false)
        {
            MsSqlTestHelper.DropTable(typeof(TViewInstance).Name + "_HybridDb");
            MsSqlTestHelper.DropTable(typeof(TViewInstance).Name + "_Documents");
            MsSqlTestHelper.DropTable(typeof(TViewInstance).Name + "_ViewPositions");
            MsSqlTestHelper.DropTable(typeof(TViewInstance).Name + "_Views");

            var documentStore = DocumentStore.ForTesting(
                TableMode.UseRealTables,
                MsSqlTestHelper.ConnectionString,
                x =>
            {
                x.UseTableNamePrefix(typeof(TViewInstance).Name + "_");
                x.Document <ViewPosition>().Key(v => v.Id);
                x.Document <TViewInstance>("Views").Key(v => v.Id);
            });

            documentStore.Initialize();

            RegisterDisposable(documentStore);

            return(new HybridDbViewManager <TViewInstance>(documentStore)
            {
                BatchDispatchEnabled = enableBatchDispatch
            });
        }
        public EntityFrameworkViewManagerFactory()
        {
            MsSqlTestHelper.EnsureTestDatabaseExists();

            MsSqlTestHelper.DropTable("__MigrationHistory");

            _connectionString = MsSqlTestHelper.ConnectionString;
        }
Esempio n. 12
0
        public SqlInboxEmptyWhenSearchedTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupCommandDb();

            _sqlInbox   = new MsSqlInbox(_msSqlTestHelper.InboxConfiguration);
            _contextKey = "context-key";
        }
Esempio n. 13
0
        public SqlCommandStoreEmptyWhenSearchedTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupCommandDb();

            _sqlCommandStore = new MsSqlCommandStore(_msSqlTestHelper.CommandStoreConfiguration);
            _contextKey      = "context-key";
        }
        public MsSqlOutboxEmptyStoreAsyncTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupMessageDb();

            _sqlOutbox       = new MsSqlOutbox(_msSqlTestHelper.OutboxConfiguration);
            _messageEarliest = new Message(new MessageHeader(Guid.NewGuid(), "test_topic", MessageType.MT_DOCUMENT), new MessageBody("message body"));
        }
Esempio n. 15
0
        public void Establish()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupMessageDb();

            _sqlMessageStore = new MsSqlMessageStore(_msSqlTestHelper.MessageStoreConfiguration);
            _messageEarliest = new Message(new MessageHeader(Guid.NewGuid(), "test_topic", MessageType.MT_DOCUMENT), new MessageBody("message body"));
        }
        public MsSqlMessageStoreMessageAlreadyExistsTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupMessageDb();

            _sqlMessageStore = new MsSqlMessageStore(_msSqlTestHelper.MessageStoreConfiguration);
            _messageEarliest = new Message(new MessageHeader(Guid.NewGuid(), "test_topic", MessageType.MT_DOCUMENT), new MessageBody("message body"));
            _sqlMessageStore.Add(_messageEarliest);
        }
Esempio n. 17
0
        protected override IViewManager <TViewInstance> CreateViewManager <TViewInstance>()
        {
            var tableName = typeof(TViewInstance).Name;

            MsSqlTestHelper.DropTable(tableName);

            var viewManager = new MsSqlViewManager <TViewInstance>(_connectionString, tableName);

            return(viewManager);
        }
Esempio n. 18
0
        public SqlCommandStoreAddMessageAsyncTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupCommandDb();

            _sqlCommandStore = new MsSqlCommandStore(_msSqlTestHelper.CommandStoreConfiguration);
            _raisedCommand   = new MyCommand {
                Value = "Test"
            };
        }
        public MsSqlOutboxRangeRequestAsyncTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupMessageDb();

            _sqlOutbox       = new MsSqlOutbox(_msSqlTestHelper.OutboxConfiguration);
            _messageEarliest = new Message(new MessageHeader(Guid.NewGuid(), _TopicFirstMessage, MessageType.MT_DOCUMENT), new MessageBody("message body"));
            _message1        = new Message(new MessageHeader(Guid.NewGuid(), "test_topic2", MessageType.MT_DOCUMENT), new MessageBody("message body2"));
            _message2        = new Message(new MessageHeader(Guid.NewGuid(), _TopicLastMessage, MessageType.MT_DOCUMENT), new MessageBody("message body3"));
        }
Esempio n. 20
0
        public SqlCommandStoreDuplicateMessageTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupCommandDb();

            _sqlCommandStore = new MsSqlCommandStore(_msSqlTestHelper.CommandStoreConfiguration);
            _raisedCommand   = new MyCommand {
                Value = "Test"
            };
            _sqlCommandStore.Add(_raisedCommand);
        }
Esempio n. 21
0
        public SqlCommandStoreDuplicateMessageAsyncTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupCommandDb();

            _sqlCommandStore = new MsSqlCommandStore(_msSqlTestHelper.CommandStoreConfiguration);
            _raisedCommand   = new MyCommand {
                Value = "Test"
            };
            _contextKey = "test-context";
        }
        public SqlInboxAddMessageAsyncTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupCommandDb();

            _sqlInbox      = new MsSqlInbox(_msSqlTestHelper.InboxConfiguration);
            _raisedCommand = new MyCommand {
                Value = "Test"
            };
            _contextKey = "context-key";
        }
Esempio n. 23
0
        public void Establish()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupCommandDb();

            _sqlCommandStore = new MsSqlCommandStore(_msSqlTestHelper.CommandStoreConfiguration);
            _raisedCommand   = new MyCommand {
                Value = "Test"
            };
            AsyncContext.Run(async() => await _sqlCommandStore.AddAsync(_raisedCommand));
        }
Esempio n. 24
0
        public void Establish()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupCommandDb();

            _sqlCommandStore = new MsSqlCommandStore(_msSqlTestHelper.CommandStoreConfiguration);
            _raisedCommand   = new MyCommand {
                Value = "Test"
            };
            _sqlCommandStore.Add <MyCommand>(_raisedCommand);
        }
        public SqlCommandStoreAddMessageTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupCommandDb();

            _sqlCommandStore = new MsSqlCommandStore(_msSqlTestHelper.CommandStoreConfiguration);
            _raisedCommand   = new MyCommand {
                Value = "Test"
            };
            _contextKey = "context-key";
            _sqlCommandStore.Add(_raisedCommand, _contextKey);
        }
Esempio n. 26
0
        public MsSqlEventStoreFactory()
        {
            MsSqlTestHelper.EnsureTestDatabaseExists();

            var connectionString = MsSqlTestHelper.ConnectionString;

            MsSqlTestHelper.DropTable("events");

            _eventStore = new MsSqlEventStore(connectionString, "events");

            _eventStore.DropEvents();
        }
        public PurgeTest()
        {
            var testHelper = new MsSqlTestHelper();

            testHelper.SetupQueueDb();

            var sub = new Subscription <MyCommand>(new SubscriptionName(_queueName),
                                                   new ChannelName(_topic), new RoutingKey(_topic));

            _producer = new MsSqlMessageProducerFactory(testHelper.QueueConfiguration).Create();
            _consumer = new MsSqlMessageConsumerFactory(testHelper.QueueConfiguration).Create(sub);
        }
Esempio n. 28
0
        public OutstandingMessagesTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupMessageDb();

            _sqlOutbox         = new MsSqlOutbox(_msSqlTestHelper.OutboxConfiguration);
            _dispatchedMessage = new Message(new MessageHeader(Guid.NewGuid(), "test_topic", MessageType.MT_DOCUMENT), new MessageBody("message body"));
            _sqlOutbox.Add(_dispatchedMessage);

            //wait to create an oustanding period
            Task.Delay(1000).Wait();
        }
Esempio n. 29
0
        public SqlInboxDuplicateMessageTests()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupCommandDb();

            _sqlInbox      = new MsSqlInbox(_msSqlTestHelper.InboxConfiguration);
            _raisedCommand = new MyCommand {
                Value = "Test"
            };
            _contextKey = "context-key";
            _sqlInbox.Add(_raisedCommand, _contextKey);
        }
        public void Establish()
        {
            _msSqlTestHelper = new MsSqlTestHelper();
            _msSqlTestHelper.SetupMessageDb();

            s_sqlMessageStore = new MsSqlMessageStore(_msSqlTestHelper.MessageStoreConfiguration);
            s_messageEarliest = new Message(new MessageHeader(Guid.NewGuid(), _TopicFirstMessage, MessageType.MT_DOCUMENT), new MessageBody("message body"));
            s_message1        = new Message(new MessageHeader(Guid.NewGuid(), "test_topic2", MessageType.MT_DOCUMENT), new MessageBody("message body2"));
            s_message2        = new Message(new MessageHeader(Guid.NewGuid(), _TopicLastMessage, MessageType.MT_DOCUMENT), new MessageBody("message body3"));
            s_sqlMessageStore.Add(s_messageEarliest);
            s_sqlMessageStore.Add(s_message1);
            s_sqlMessageStore.Add(s_message2);
        }