public void When_a_message_is_sent_it_removes_the_message_from_the_repository() { var repository = new NotNullable<IIncommingMessageRepository>( Substitute.For<IIncommingMessageRepository>()); var serviceEvents = new ServiceEvents(); var sut = new MessageCleanerService(serviceEvents, repository); var message = new NotNullOrWhiteSpaceString(StringExtension.RandomString()); serviceEvents.SentIncommingMessage(message); repository.Value.Received(1).Delete(message); }
public void When_SentMessage_it_notifies_subscriptor() { List<string> messages = new List<string>(StringExtension.RandomStrings(6)); List<string> sentMessages = new List<string>(); var sut = new ServiceEvents(); sut.SentIncommingMessageSequence.Subscribe(s=> sentMessages.Add(s)); messages.ForEach(m => sut.SentIncommingMessage(m)); Assert.Equal(messages.Count, sentMessages.Count); messages.ForEach(m => Assert.True(sentMessages.Contains(m))); }
public void When_a_message_is_removed_emits_serviceEvent_DeletedIncommingMessage() { var repository = new NotNullable<IIncommingMessageRepository>(Substitute.For<IIncommingMessageRepository>()); var serviceEvents = new ServiceEvents(); var sut = new MessageCleanerService(serviceEvents, repository); var message = new NotNullOrWhiteSpaceString(StringExtension.RandomString()); bool eventEmitted = false; serviceEvents.DeletedIncommingMessageSequence.Subscribe(new Action<NotNullOrWhiteSpaceString>(s => { Assert.Equal(message.Value, s.Value); eventEmitted = true; })); serviceEvents.SentIncommingMessage(message); Assert.True(eventEmitted); }