public void When_there_is_an_outstanding_message_in_the_outbox() { // arrange var eventStoreOutbox = new EventStoreOutbox(Connection); var args = new Dictionary <string, object> { { EventStoreOutbox.StreamArg, StreamName } }; var outstandingMessage = CreateMessage(0, StreamName); var dispatchedMessage = CreateMessage(1, StreamName); var outstandingRecentMessage = CreateMessage(3, StreamName); eventStoreOutbox.Add(outstandingMessage); eventStoreOutbox.Add(dispatchedMessage); Task.Delay(1000).Wait(); eventStoreOutbox.MarkDispatched(dispatchedMessage.Id, DateTime.UtcNow, args); eventStoreOutbox.Add(outstandingRecentMessage); // act var messages = eventStoreOutbox.OutstandingMessages(500, 100, 1, args); // assert messages.Should().BeEquivalentTo(outstandingMessage); }
public void When_marking_a_message_as_dispatched_tests() { // arrange var eventStoreOutbox = new EventStoreOutbox(Connection); var body = new MessageBody("{companyId:123}"); var header = new MessageHeader(Guid.NewGuid(), "Topic", MessageType.MT_EVENT); header.Bag.Add("impersonatorId", 123); header.Bag.Add("eventNumber", 0); header.Bag.Add("streamId", StreamName); var messageToMarkAsDispatched = new Message(header, body); var dispatchedAt = DateTime.UtcNow; var args = new Dictionary <string, object> { { Globals.StreamArg, StreamName } }; eventStoreOutbox.Add(messageToMarkAsDispatched); // act eventStoreOutbox.MarkDispatched(messageToMarkAsDispatched.Id, dispatchedAt, args); // assert var messages = eventStoreOutbox.Get(1, 2, args); messages.Should().ContainSingle().Which.Header.Bag[Globals.DispatchedAtKey].Should().Be(dispatchedAt); }
public void When_null_args_are_supplied() { // arrange var eventStoreOutbox = new EventStoreOutbox(Connection); // act Action getWithoutArgs = () => eventStoreOutbox.MarkDispatched(Guid.Empty, DateTime.UtcNow); // assert getWithoutArgs.Should().Throw <ArgumentNullException>(); }
public void When_empty_args_are_supplied() { // arrange var eventStoreOutbox = new EventStoreOutbox(Connection); var args = new Dictionary <string, object>(); // act // act Action getWithoutArgs = () => eventStoreOutbox.MarkDispatched(Guid.Empty, DateTime.UtcNow, args); // assert getWithoutArgs.Should().Throw <ArgumentException>(); }
public void When_there_is_an_outstanding_message_in_the_outbox() { // arrange var eventStoreOutbox = new EventStoreOutbox(Connection); var args = new Dictionary <string, object> { { Globals.StreamArg, StreamName } }; var body = new MessageBody("{companyId:123}"); var header = new MessageHeader(Guid.NewGuid(), "Topic", MessageType.MT_EVENT); header.Bag.Add("impersonatorId", 123); header.Bag.Add("eventNumber", 0); header.Bag.Add("streamId", StreamName); var outstandingMessage = new Message(header, body); var body1 = new MessageBody("{companyId:123}"); var header1 = new MessageHeader(Guid.NewGuid(), "Topic", MessageType.MT_EVENT); header1.Bag.Add("impersonatorId", 123); header1.Bag.Add("eventNumber", 1); header1.Bag.Add("streamId", StreamName); var dispatchedMessage = new Message(header1, body1); var body2 = new MessageBody("{companyId:123}"); var header2 = new MessageHeader(Guid.NewGuid(), "Topic", MessageType.MT_EVENT); header2.Bag.Add("impersonatorId", 123); header2.Bag.Add("eventNumber", 3); header2.Bag.Add("streamId", StreamName); var outstandingRecentMessage = new Message(header2, body2); eventStoreOutbox.Add(outstandingMessage); eventStoreOutbox.Add(dispatchedMessage); Task.Delay(1000).Wait(); eventStoreOutbox.MarkDispatched(dispatchedMessage.Id, DateTime.UtcNow, args); eventStoreOutbox.Add(outstandingRecentMessage); // act var messages = eventStoreOutbox.OutstandingMessages(500, 100, 1, args); // assert messages.Should().BeEquivalentTo(outstandingMessage); }
public void When_marking_a_message_as_dispatched_tests() { // arrange var eventStoreOutbox = new EventStoreOutbox(Connection); var messageToMarkAsDispatched = CreateMessage(0, StreamName); var dispatchedAt = DateTime.UtcNow; var args = new Dictionary <string, object> { { EventStoreOutbox.StreamArg, StreamName } }; eventStoreOutbox.Add(messageToMarkAsDispatched); // act eventStoreOutbox.MarkDispatched(messageToMarkAsDispatched.Id, dispatchedAt, args); // assert var messages = eventStoreOutbox.Get(1, 2, args); messages.Should().ContainSingle().Which.Header.Bag[EventStoreOutbox.DispatchedAtKey].Should().Be(dispatchedAt); }