public void ReturnFalse_GivenEmptyQueue() { var automatedMessagingSystem = new AutomatedMessagingSystem(); bool result = automatedMessagingSystem.DequeueMessage(out string myMessage); Assert.False(result); }
public void AddNoMessagesToQueue_GivenNoAutomatedMessages() { var automatedMessagingSystem = new AutomatedMessagingSystem(); automatedMessagingSystem.CheckMessages(DateTime.Now); Assert.Empty(automatedMessagingSystem.QueuedMessages); }
public void AddAutomatedMessageToManagedMessages() { var messagingSystem = new AutomatedMessagingSystem(); var automatedMessage = new IntervalTriggeredMessage(1, "Welcome! If you are enjoying the content, please follow DevChatter for more!"); messagingSystem.Publish(automatedMessage); Assert.Contains(automatedMessage, messagingSystem.ManagedMessages); }
public void AddOneMessagesToQueue_GivenOneReadyAutomatedMessage() { var automatedMessagingSystem = new AutomatedMessagingSystem(); automatedMessagingSystem.Publish(new AlwaysReadyMessage()); automatedMessagingSystem.CheckMessages(DateTime.Now); Assert.Single(automatedMessagingSystem.QueuedMessages); }
public void AddOneMessagesToQueue_GivenManyMessages_OnlyOneReady() { var automatedMessagingSystem = new AutomatedMessagingSystem(); automatedMessagingSystem.Publish(new NeverReadyMessage()); automatedMessagingSystem.Publish(new AlwaysReadyMessage()); automatedMessagingSystem.Publish(new NeverReadyMessage()); automatedMessagingSystem.CheckMessages(); Assert.Single(automatedMessagingSystem.QueuedMessages); }
public void ReturnTrueAndProvideMessage_GivenSingleQueuedMessage() { var automatedMessagingSystem = new AutomatedMessagingSystem(); var message = new AlwaysReadyMessage(); automatedMessagingSystem.Publish(message); automatedMessagingSystem.CheckMessages(); bool result = automatedMessagingSystem.DequeueMessage(out string myMessage); Assert.True(result); Assert.Equal(message.GetMessageInstance(), myMessage); }
public void AddAutomatedMessageToManagedMessages() { var messagingSystem = new AutomatedMessagingSystem(); var intervalTriggeredMessage = new IntervalTriggeredMessage { DelayInMinutes = 1, Message = "Welcome! If you are enjoying the content, please follow for more!" }; messagingSystem.Publish(intervalTriggeredMessage); Assert.Contains(intervalTriggeredMessage, messagingSystem.ManagedAutomatedMessages); }
public void ReturnOnlyOneMessage_GivenSingleQueuedMessage() { var automatedMessagingSystem = new AutomatedMessagingSystem(); var message = new AlwaysReadyMessage(); automatedMessagingSystem.Publish(message); automatedMessagingSystem.CheckMessages(); automatedMessagingSystem.DequeueMessage(out string myMessage); bool result = automatedMessagingSystem.DequeueMessage(out string throwawayMessage); Assert.False(result); Assert.Equal(message.GetMessageInstance(), myMessage); Assert.Null(throwawayMessage); }