public async Task When_there_are_multiple_messages_and_some_are_received_and_Dispatched_bulk_Async() { await _sqlOutbox.AddAsync(_message); await Task.Delay(100); await _sqlOutbox.AddAsync(_message1); await Task.Delay(100); await _sqlOutbox.AddAsync(_message2); await Task.Delay(100); await _sqlOutbox.AddAsync(_message3); await Task.Delay(100); _messages = await _sqlOutbox.GetAsync(new[] { _message1.Id, _message2.Id }); //should fetch 1 message _messages.Should().HaveCount(2); //should fetch expected message _messages.Should().Contain(m => m.Id == _message1.Id); _messages.Should().Contain(m => m.Id == _message2.Id); await _sqlOutbox.MarkDispatchedAsync(_messages.Select(m => m.Id), DateTime.UtcNow); var undispatchedMessages = await _sqlOutbox.OutstandingMessagesAsync(0); undispatchedMessages.Count().Should().Be(2); }
public async Task When_There_Is_No_Message_In_The_Sql_Outbox_Async() { _storedMessage = await _sqlOutbox.GetAsync(_messageEarliest.Id); //should return a empty message _storedMessage.Header.MessageType.Should().Be(MessageType.MT_NONE); }
public async Task When_Writing_A_Message_To_The_Outbox_Async() { await _sqlOutbox.AddAsync(_messageEarliest); _storedMessage = await _sqlOutbox.GetAsync(_messageEarliest.Id); //should read the message from the sql outbox _storedMessage.Body.Value.Should().Be(_messageEarliest.Body.Value); //should read the header from the sql outbox _storedMessage.Header.Topic.Should().Be(_messageEarliest.Header.Topic); _storedMessage.Header.MessageType.Should().Be(_messageEarliest.Header.MessageType); _storedMessage.Header.TimeStamp.Should().Be(_messageEarliest.Header.TimeStamp); _storedMessage.Header.HandledCount.Should().Be(0); // -- should be zero when read from outbox _storedMessage.Header.DelayedMilliseconds.Should().Be(0); // -- should be zero when read from outbox _storedMessage.Header.CorrelationId.Should().Be(_messageEarliest.Header.CorrelationId); _storedMessage.Header.ReplyTo.Should().Be(_messageEarliest.Header.ReplyTo); _storedMessage.Header.ContentType.Should().Be(_messageEarliest.Header.ContentType); //Bag serialization //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); }
public async Task When_Writing_Messages_To_The_Outbox_Async() { await SetUpMessagesAsync(); _retrievedMessages = await _sqlOutbox.GetAsync(); //_should_read_first_message_last_from_the__outbox _retrievedMessages.Last().Id.Should().Be(_messageEarliest.Id); //_should_read_last_message_first_from_the__outbox _retrievedMessages.First().Id.Should().Be(_messageLatest.Id); // _should_read_the_messages_from_the__outbox _retrievedMessages.Should().HaveCount(3); }
public async Task When_Writing_Messages_To_The_Outbox_Async() { await SetUpMessagesAsync(); _retrievedMessages = await _sqlOutbox.GetAsync(); //should read first message last from the outbox _retrievedMessages.Last().Id.Should().Be(_messageEarliest.Id); //should read last message first from the outbox _retrievedMessages.First().Id.Should().Be(_messageLatest.Id); //should read the messages from the outbox _retrievedMessages.Should().HaveCount(3); }
public async Task When_There_Are_Multiple_Messages_In_The_Outbox_And_A_Range_Is_Fetched_Async() { await _sqlOutbox.AddAsync(_messageEarliest); await Task.Delay(100); await _sqlOutbox.AddAsync(_message1); await Task.Delay(100); await _sqlOutbox.AddAsync(_message2); _messages = await _sqlOutbox.GetAsync(1, 3); //_should_fetch_1_message _messages.Should().HaveCount(1); //_should_fetch_expected_message _messages.First().Header.Topic.Should().Be(_TopicLastMessage); //_should_not_fetch_null_messages _messages.Should().NotBeNull(); }
public async Task When_Writing_A_Message_To_The_Outbox_Async() { await _sqlOutbox.AddAsync(_messageEarliest); _storedMessage = await _sqlOutbox.GetAsync(_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); }