public void SendingMessageToUser_WhenUserExists_ShouldSendMessage() { // Arrange string username = "******"; var message = new DirectMessageResponse("Sender", username, "Hello!", true); var logger = Substitute.For <ILogger <MessageSenderService> >(); var userService = Substitute.For <IUserService>(); userService.TryGetUserByName(Arg.Is(username), out Arg.Any <ChatUser>()) .Returns(args => { args[1] = new ChatUser(username); return(true); }); var networkServer = Substitute.For <INetworkServer>(); var messageSenderService = new MessageSenderService(logger, userService, networkServer); // Act bool result = messageSenderService.SendMessageToUser(username, message); // Arrange Assert.True(result); networkServer.Received(1).SendMessage(username, Arg.Any <byte[]>()); }
public void DirectMessageResponse_WhenSerializedAndDeserialized_ShouldBeEqual() { // Arrange Message message = new DirectMessageResponse("user", "user2", "Lorem ipsum", true); // Act / Assert this.SerializeDeserializeAndCompare(message); }
private void DisplayMessageToUser(DirectMessageResponse directMessage) { Console.WriteLineFormatted( "{0} to {1}: {2}", Color.Gray, new Formatter(directMessage.Sender, Color.LimeGreen), new Formatter("you", Color.Red), new Formatter(directMessage.Text, Color.Lime)); }
private void DisplayDirectMessage(DirectMessageResponse directMessage) { if (directMessage.IsPrivate) { this.DisplayPrivateMessage(directMessage); } else if (directMessage.Recipient == this.username) { this.DisplayMessageToUser(directMessage); } else { this.DisplayMessageToOther(directMessage); } }
public override void HandleMessage(string username, DirectMessageRequest message) { if (this.userService.TryGetUserByName(username, out ChatUser sender)) { if (this.userService.TryGetUserByName(message.Recipient, out ChatUser recipient)) { var messageResponse = new DirectMessageResponse(sender.Username, recipient.Username, message.Text, message.IsPrivate); if (message.IsPrivate) { this.messageSenderService.SendMessageToUser(recipient.Username, messageResponse); } else { this.messageSenderService.SendMessageToEveryoneElse(sender.Username, messageResponse); } } else { this.messageSenderService.NotifyUser(username, $"User {message.Recipient} is not online.", NotificationLevel.Warning); } } }