public DynamoDbOutboxWritingMessageTests() { 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); _messageEarliest = new Message(messageHeader, new MessageBody("message body")); _dynamoDbOutbox = new DynamoDbOutbox(Client, new DynamoDbConfiguration(Credentials, RegionEndpoint.EUWest1, TableName)); _dynamoDbOutbox.Add(_messageEarliest); }
public DynamoDbOutboxMessageAlreadyExistsTests() { _messageEarliest = new Message(new MessageHeader(Guid.NewGuid(), "test_topic", MessageType.MT_DOCUMENT), new MessageBody("message body")); _dynamoDbOutbox = new DynamoDbOutbox(Client, new DynamoDbConfiguration(Credentials, RegionEndpoint.EUWest1, TableName)); _dynamoDbOutbox.AddAsync(_messageEarliest).Wait(); }
public void When_the_message_is_already_in_the_outbox() { _exception = Catch.Exception(() => DynamoDbOutbox.Add(_messageEarliest)); //_should_ignore_the_duplicate_key_and_still_succeed _exception.Should().BeNull(); }
public void When_there_is_no_message_in_the_dynamo_db_outbox() { _storedMessage = DynamoDbOutbox.Get(_messageEarliest.Id); //_should_return_a_empty_message _storedMessage.Header.MessageType.Should().Be(MessageType.MT_NONE); }
public async Task When_there_is_no_message_in_the_dynamo_db_message_store() { _storedMessage = await DynamoDbOutbox.GetAsync(_messageEarliest.Id); //_should_return_a_empty_message _storedMessage.Header.MessageType.Should().Be(MessageType.MT_NONE); }
public void When_reading_message_by_time_range() { var retrievedMessages = DynamoDbOutbox.Get(_topic, _timeStamp, _timeStamp.AddHours(-3), _timeStamp.AddHours(-2)); //_should_read_the_last_middle_message_from_the_store retrievedMessages.Should().HaveCount(1); retrievedMessages.Single().Should().Be(_message2); }
public async Task When_the_message_is_already_in_the_outbox_async() { await DynamoDbOutbox.AddAsync(_messageEarliest); _exception = await Catch.ExceptionAsync(() => DynamoDbOutbox.AddAsync(_messageEarliest)); //_should_ignore_the_duplicate_key_and_still_succeed _exception.Should().BeNull(); }
public void When_reading_message_until_time() { var retrievedMessages = DynamoDbOutbox.Get(_topic, _timeStamp, endTime: _timeStamp.AddHours(-2)); //_should_read_the_last_two_messages_from_the_store retrievedMessages.Should().HaveCount(2); retrievedMessages.FirstOrDefault(m => m.Id == _guids[0]).Should().NotBeNull(); retrievedMessages.FirstOrDefault(m => m.Id == _guids[1]).Should().NotBeNull(); }
public DynamoDbOutboxWritingMessageAsyncTests() { var messageHeader = new MessageHeader(Guid.NewGuid(), "test_topic", MessageType.MT_DOCUMENT, DateTime.UtcNow.AddDays(-1), 5, 5); messageHeader.Bag.Add(_key1, _value1); messageHeader.Bag.Add(_key2, _value2); _messageEarliest = new Message(messageHeader, new MessageBody("message body")); _dynamoDbOutbox = new DynamoDbOutbox(Client, new DynamoDbConfiguration(Credentials, RegionEndpoint.EUWest1, TableName)); }
public DynamoDbOutboxWritingMessageTests() { var messageHeader = new MessageHeader(Guid.NewGuid(), "test_topic", MessageType.MT_DOCUMENT, DateTime.UtcNow.AddDays(-1), 5, 5); messageHeader.Bag.Add(_key1, _value1); messageHeader.Bag.Add(_key2, _value2); _messageEarliest = new Message(messageHeader, new MessageBody("Body")); DynamoDbOutbox.Add(_messageEarliest); }
public BaseDynamoDBOutboxTests() { _dynamoDbTestHelper = new DynamoDbTestHelper(); var createTableRequest = new DynamoDbOutboxBuilder(_dynamoDbTestHelper.DynamoDbMessageStoreTestConfiguration.TableName) .CreateOutboxTableRequest(_throughput, _throughput); _dynamoDbTestHelper.CreateOutboxTable(createTableRequest); DynamoDbOutbox = new DynamoDbOutbox(_dynamoDbTestHelper.DynamoDbContext, _dynamoDbTestHelper.DynamoDbMessageStoreTestConfiguration); }
public DynamoDbOutboxRangeRequestTests() { var messageEarliest = new Message(new MessageHeader(Guid.NewGuid(), _TopicFirstMessage, MessageType.MT_DOCUMENT), new MessageBody("message body")); var message1 = new Message(new MessageHeader(Guid.NewGuid(), "test_topic2", MessageType.MT_DOCUMENT), new MessageBody("message body2")); var message2 = new Message(new MessageHeader(Guid.NewGuid(), _TopicLastMessage, MessageType.MT_DOCUMENT), new MessageBody("message body3")); DynamoDbOutbox.Add(messageEarliest); Task.Delay(100); DynamoDbOutbox.Add(message1); Task.Delay(100); DynamoDbOutbox.Add(message2); }
public async Task When_writing_messages_to_the_outbox() { var guids = new[] { Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid() }; DynamoDbOutbox.Add(new Message(new MessageHeader(guids[0], "Test", MessageType.MT_COMMAND, DateTime.UtcNow.AddHours(-3)), new MessageBody("Body"))); DynamoDbOutbox.Add(new Message(new MessageHeader(guids[1], "Test2", MessageType.MT_COMMAND, DateTime.UtcNow.AddHours(-2)), new MessageBody("Body2"))); DynamoDbOutbox.Add(new Message(new MessageHeader(guids[2], "Test3", MessageType.MT_COMMAND, DateTime.UtcNow.AddHours(-1)), new MessageBody("Body3"))); var retrievedMessages = (await _dynamoDbTestHelper.Scan()).ToList(); //_should_read_the_messages_from_the__outbox retrievedMessages.Should().HaveCount(3); retrievedMessages.Single(m => m.MessageId == guids[0].ToString()).Should().NotBeNull(); retrievedMessages.Single(m => m.MessageId == guids[1].ToString()).Should().NotBeNull(); retrievedMessages.Single(m => m.MessageId == guids[2].ToString()).Should().NotBeNull(); }
public async Task When_there_are_multiple_messages_in_the_outbox_and_a_range_by_index_is_fetched() { await DynamoDbOutbox.AddAsync(_messageEarliest); await Task.Delay(100); await DynamoDbOutbox.AddAsync(_message1); await Task.Delay(100); await DynamoDbOutbox.AddAsync(_message2); var exception = await Catch.ExceptionAsync(() => DynamoDbOutbox.GetAsync(1, 3)); exception.Should().BeOfType <NotSupportedException>(); }
public async Task When_writing_messages_to_the_outbox_async() { await DynamoDbOutbox.AddAsync(_messageEarliest); await DynamoDbOutbox.AddAsync(_message2); await DynamoDbOutbox.AddAsync(_messageLatest); var retrievedMessages = (await _dynamoDbTestHelper.Scan()).ToList(); //_should_read_the_messages_from_the__outbox retrievedMessages.Should().HaveCount(3); retrievedMessages.Single(m => m.MessageId == _guids[0].ToString()).Should().NotBeNull(); retrievedMessages.Single(m => m.MessageId == _guids[1].ToString()).Should().NotBeNull(); retrievedMessages.Single(m => m.MessageId == _guids[2].ToString()).Should().NotBeNull(); }
public DynamoDbRangeOfMessagesTests() { _guids = new[] { Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid() }; _messageEarliest = new Message(new MessageHeader(_guids[0], _topic, MessageType.MT_COMMAND, _timeStamp.AddHours(-4)), new MessageBody("Body")); _message2 = new Message( new MessageHeader(_guids[1], _topic, MessageType.MT_COMMAND, _timeStamp.AddHours(-2)), new MessageBody("Body2")); _messageLatest = new Message(new MessageHeader(_guids[2], _topic, MessageType.MT_COMMAND, _timeStamp.AddHours(-1)), new MessageBody("Body3")); _nonTopicMessage = new Message(new MessageHeader(_guids[3], "Test2", MessageType.MT_COMMAND, _timeStamp.AddHours(-2)), new MessageBody("Body 4")); DynamoDbOutbox.Add(_messageEarliest); DynamoDbOutbox.Add(_message2); DynamoDbOutbox.Add(_messageLatest); DynamoDbOutbox.Add(_nonTopicMessage); }
public void When_writing_a_message_to_the_dynamo_db_outbox() { _storedMessage = DynamoDbOutbox.Get(_messageEarliest.Id); //_should_read_the_message_from_the__sql_outbox _storedMessage.Body.Value.Should().Be(_messageEarliest.Body.Value); //_should_read_the_message_header_first_bag_item_from_the__sql_outbox _storedMessage.Header.Bag.ContainsKey(_key1).Should().BeTrue(); _storedMessage.Header.Bag[_key1].Should().Be(_value1); //_should_read_the_message_header_second_bag_item_from_the__sql_outbox _storedMessage.Header.Bag.ContainsKey(_key2).Should().BeTrue(); _storedMessage.Header.Bag[_key2].Should().Be(_value2); //_should_read_the_message_header_timestamp_from_the__sql_outbox _storedMessage.Header.TimeStamp.Should().Be(_messageEarliest.Header.TimeStamp); //_should_read_the_message_header_topic_from_the__sql_outbox _storedMessage.Header.Topic.Should().Be(_messageEarliest.Header.Topic); //_should_read_the_message_header_type_from_the__sql_outbox _storedMessage.Header.MessageType.Should().Be(_messageEarliest.Header.MessageType); }
public void When_there_are_multiple_messages_in_the_outbox_and_a_range_is_fetched() { var exception = Catch.Exception(() => DynamoDbOutbox.GetAsync(1, 3).Wait()); exception.Should().BeOfType <NotSupportedException>(); }
public DynamoDbOutboxMessageAlreadyExistsTests() { _messageEarliest = new Message(new MessageHeader(Guid.NewGuid(), "test_topic", MessageType.MT_DOCUMENT), new MessageBody("message body")); DynamoDbOutbox.Add(_messageEarliest); }
public void When_reading_messages_by_numerical_range() { var exception = Catch.Exception(() => DynamoDbOutbox.Get(3, 1)); exception.Should().BeOfType <NotSupportedException>(); }