예제 #1
0
        public void SendNewMessagesWhenThereAreNoNewMessagesShouldDoNothing()
        {
            MockSocketCommunication mockSocket = new MockSocketCommunication();

            ChatServerSide server = new ChatServerSide(mockSocket);

            mockSocket.SentMessages.Add("Initial message");

            string trimmedReceivedData = "userName<sep>sentMessage<sep>server: userName joined the chat.<eof>";

            mockSocket.TextToReceive = trimmedReceivedData;

            server.CheckMessage(mockSocket);

            Assert.False(server.IsNewUser("userName"));
            Assert.Equal(3, trimmedReceivedData.Split("<sep>").Length);
            Assert.True(trimmedReceivedData.IndexOf("<eof>") > -1);
            Assert.Equal("sentMessage", server.CheckMessage(mockSocket));
            Assert.False(server.IsNewUser("userName"));

            Assert.Collection(mockSocket.SentMessages,
                              item => Assert.Equal("Initial message", item),
                              item => Assert.Equal("server: userName joined the chat.<eof>", item),
                              item => Assert.Equal("userName: sentMessage<eof>", item));

            server.SendNewMessages(mockSocket, 2);

            Assert.Collection(mockSocket.SentMessages,
                              item => Assert.Equal("Initial message", item),
                              item => Assert.Equal("server: userName joined the chat.<eof>", item),
                              item => Assert.Equal("userName: sentMessage<eof>", item));
        }
예제 #2
0
        public void CheckMessageWhenNewUserAndUserNameAlreadyExistShouldRequestForNewUserName()
        {
            MockSocketCommunication mockSocket = new MockSocketCommunication();

            ChatServerSide server = new ChatServerSide(mockSocket);

            string trimmedReceivedData = "userName<sep>sentMessage<sep>NotExistingText<eof>";

            mockSocket.TextToReceive = trimmedReceivedData;

            Assert.True(server.IsNewUser("userName"));
            Assert.Equal(3, trimmedReceivedData.Split("<sep>").Length);
            Assert.True(trimmedReceivedData.IndexOf("<eof>") > -1);
            Assert.Equal("sentMessage", server.CheckMessage(mockSocket));
            Assert.False(server.IsNewUser("userName"));

            Assert.Collection(mockSocket.SentMessages,
                              item => Assert.Equal("server: userName joined the chat.<eof>", item));

            Assert.Equal("sentMessage", server.CheckMessage(mockSocket));

            Assert.Collection(mockSocket.SentMessages,
                              item => Assert.Equal("server: userName joined the chat.<eof>", item),
                              item => Assert.Equal("server: userName already exist, choose a different user name.<eof>", item));
        }
예제 #3
0
        public void AddUserWhenNewUserShouldAddUserToHashTable()
        {
            ChatServerSide server = new ChatServerSide();

            Assert.True(server.IsNewUser("newUser"));

            server.AddUser("newUser");

            Assert.False(server.IsNewUser("newUser"));
        }
예제 #4
0
        public void CheckMessageWhenNewUserShouldAddUser()
        {
            MockSocketCommunication mockSocket = new MockSocketCommunication();

            ChatServerSide server = new ChatServerSide(mockSocket);

            string trimmedReceivedData = "userName<sep>sentMessage<sep>lastMessageReceived<eof>";

            mockSocket.TextToReceive = trimmedReceivedData;

            Assert.True(server.IsNewUser("userName"));
            Assert.Equal(3, trimmedReceivedData.Split("<sep>").Length);
            Assert.True(trimmedReceivedData.IndexOf("<eof>") > -1);
            Assert.Equal("sentMessage", server.CheckMessage(mockSocket));
            Assert.False(server.IsNewUser("userName"));
        }
예제 #5
0
        public void IsNewUserWhenUserExistShouldReturnFalse()
        {
            ChatServerSide server = new ChatServerSide();

            server.AddUser("newUser");

            Assert.False(server.IsNewUser("newUser"));
        }
예제 #6
0
        public void CheckMessageWhenNewUserShouldSendOnlyGreetingMessage()
        {
            MockSocketCommunication mockSocket = new MockSocketCommunication();

            ChatServerSide server = new ChatServerSide(mockSocket);

            string initialTestMessage = "someUser<sep>Initial message<sep>testLastMessageReceived<eof>";

            mockSocket.TextToReceive = initialTestMessage;

            server.CheckMessage(mockSocket);

            Assert.Collection(mockSocket.SentMessages,
                              item => Assert.Equal("server: someUser joined the chat.<eof>", item));

            string testMessage = "someUser<sep>Initial message<sep>server: someUser joined the chat.<eof>";

            mockSocket.TextToReceive = testMessage;

            Assert.False(server.IsNewUser("someUser"));
            Assert.Equal(3, testMessage.Split("<sep>").Length);
            Assert.True(testMessage.IndexOf("<eof>") > -1);
            Assert.Equal("Initial message", server.CheckMessage(mockSocket));
            Assert.False(server.IsNewUser("someUser"));

            Assert.Collection(mockSocket.SentMessages,
                              item => Assert.Equal("server: someUser joined the chat.<eof>", item),
                              item => Assert.Equal("someUser: Initial message<eof>", item));

            string trimmedReceivedData = "newUser<sep>sentMessage<sep>lastMessageReceived<eof>";

            mockSocket.TextToReceive = trimmedReceivedData;

            Assert.True(server.IsNewUser("newUser"));
            Assert.Equal(3, trimmedReceivedData.Split("<sep>").Length);
            Assert.True(trimmedReceivedData.IndexOf("<eof>") > -1);
            Assert.Equal("sentMessage", server.CheckMessage(mockSocket));
            Assert.False(server.IsNewUser("newUser"));

            Assert.Collection(mockSocket.SentMessages,
                              item => Assert.Equal("server: someUser joined the chat.<eof>", item),
                              item => Assert.Equal("someUser: Initial message<eof>", item),
                              item => Assert.Equal("server: newUser joined the chat.<eof>", item));
        }
예제 #7
0
        public void IsNewUserWhenUserNoExistShouldReturnTrue()
        {
            ChatServerSide server = new ChatServerSide();

            Assert.True(server.IsNewUser("newUser"));
        }