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[]>());
        }
Beispiel #2
0
        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);
     }
 }
Beispiel #4
0
 private void DisplayPublicMessage(PublicMessageResponse publicMessage)
 {
     Console.WriteLineFormatted(
         "{0}: {1}",
         Color.Gray,
         new Formatter(publicMessage.Sender, Color.Cyan),
         new Formatter(publicMessage.Text, Color.White));
 }