public void AddNoMessagesToQueue_GivenNoAutomatedMessages() { var automatedMessagingSystem = new AutomatedMessagingSystem(); automatedMessagingSystem.CheckMessages(DateTime.Now); Assert.Empty(automatedMessagingSystem.QueuedMessages); }
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 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); }
private void BeginLoop() { while (true) { Thread.Sleep(1000); _autoMsgSystem.CheckMessages(DateTime.Now); while (_autoMsgSystem.DequeueMessage(out string theMessage)) { var message = $"{DateTime.Now.ToShortTimeString()} - {theMessage}"; foreach (var chatClient in _chatClients) { chatClient.SendMessage(message); } } } }
private void BeginLoop() { _stopRequestSource = new CancellationTokenSource(); Task.Run(() => { while (_stopRequestSource.Token.IsCancellationRequested != true) { Thread.Sleep(_refreshInterval); _automatedActionSystem.RunNecessaryActions(); _autoMsgSystem.CheckMessages(); while (_autoMsgSystem.DequeueMessage(out string message)) { foreach (var chatClient in _chatClients) { chatClient.SendMessage(message); } } } }); }