public void SendingMessageToEveryoneElse_WhenAnyUser_ShouldSendMessagesToEveryoneElse() { // Arrange var message = new PublicMessageResponse("Sender", "Hello everyone!"); string senderUsername = "******"; var users = new List <ChatUser>() { new ChatUser(senderUsername), new ChatUser("User001"), new ChatUser("User002"), new ChatUser("User003"), }; var logger = Substitute.For <ILogger <MessageSenderService> >(); var userService = Substitute.For <IUserService>(); userService.GetConnectedUsers().Returns(users); var networkServer = Substitute.For <INetworkServer>(); var messageSenderService = new MessageSenderService(logger, userService, networkServer); // Act messageSenderService.SendMessageToEveryoneElse(senderUsername, message); // Assert networkServer.Received(users.Count - 1).SendMessage(Arg.Any <string>(), Arg.Any <byte[]>()); }
public void PublicMessageResponse_WhenSerializedAndDeserialized_ShouldBeEqual() { // Arrange Message message = new PublicMessageResponse("user", "Lorem ipsum"); // Act / Assert this.SerializeDeserializeAndCompare(message); }
public override void HandleMessage(string username, PublicMessageRequest message) { if (this.userService.TryGetUserByName(username, out ChatUser sender)) { var messageResponse = new PublicMessageResponse(sender.Username, message.Text); this.messageSenderService.SendMessageToEveryoneElse(sender.Username, messageResponse); } }
private void DisplayPublicMessage(PublicMessageResponse publicMessage) { Console.WriteLineFormatted( "{0}: {1}", Color.Gray, new Formatter(publicMessage.Sender, Color.Cyan), new Formatter(publicMessage.Text, Color.White)); }