Пример #1
0
        public void Wrapped_Empty_Message_ShouldBe_Unwrapped()
        {
            MockSocketProxy mockSocket   = new MockSocketProxy();
            NormalPerson    normalPerson = new NormalPerson(new Person(mockSocket));
            Buffer          buffer       = new Buffer();

            mockSocket.internalReceiveBuffer.Add(new Message("").WrapData());
            byte[] res    = buffer.Read(mockSocket);
            string result = Encoding.ASCII.GetString(res);

            Assert.Equal("", result);
        }
Пример #2
0
        public void Wrapped_Invalid_BiggerLength_Message_ShouldBe_Unwrapped()
        {
            MockSocketProxy mockSocket   = new MockSocketProxy();
            NormalPerson    normalPerson = new NormalPerson(new Person(mockSocket));
            Buffer          buffer       = new Buffer();

            mockSocket.internalReceiveBuffer.Add(mockSocket.WrapData(new Message("test").ToByteArray(), 10));
            var exception = Record.Exception(() => buffer.Read(mockSocket));

            Assert.IsType(typeof(System.Exception), exception);
            Assert.True(exception.Message.Contains("You've received zero bytes. Please, check your connection."));
        }
Пример #3
0
        public void If_OnlyConnected_Person_Sends_Exit_Msg_Room_IsEmptied()
        {
            MockSocketProxy serverMockSocket = new MockSocketProxy();
            Server          testServer       = new Server(serverMockSocket);
            Room            testRoom         = testServer.GetRoom();
            MockSocketProxy mockSocket       = new MockSocketProxy();
            NormalPerson    testPerson       = new NormalPerson(new Person("testUserName", mockSocket));

            testRoom.Join(testPerson);
            mockSocket.internalReceiveBuffer.Add(new Message("exit").WrapData());
            testServer.HandleCommunication(testPerson, () => testPerson.ReceiveMessage());

            Assert.True(testRoom.IsRoomEmpty());
        }
Пример #4
0
 public void StartServer(IPAddress ipAddress)
 {
     try
     {
         IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 8300);
         serverSocket.Bind(localEndPoint);
         serverSocket.Listen(10);
         Console.WriteLine("Waiting for clients to connect...");
         while (true)
         {
             ISocketProxy clientSocket = serverSocket.Accept();
             Individual   normalPerson = new NormalPerson(new Person(clientSocket));
             Thread       myThread     = new Thread(HandleLogin);
             myThread.Start(normalPerson);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex);
     }
 }
Пример #5
0
        public void If_LoggedIn_Person_Sends_Msg_Server_Answers_With_Broadcast()
        {
            MockSocketProxy serverMockSocket = new MockSocketProxy();
            Server          testServer       = new Server(serverMockSocket);
            Room            testRoom         = testServer.GetRoom();
            MockSocketProxy mockSocketOne    = new MockSocketProxy();
            MockSocketProxy mockSocketTwo    = new MockSocketProxy();
            NormalPerson    testPersonOne    = new NormalPerson(new Person("testUserNameOne", mockSocketOne));
            NormalPerson    testPersonTwo    = new NormalPerson(new Person("testUserNameTwo", mockSocketTwo));

            mockSocketOne.internalReceiveBuffer.Add(new Message("test").WrapData());
            mockSocketOne.internalReceiveBuffer.Add(new Message("exit").WrapData());
            mockSocketTwo.internalReceiveBuffer.Add(new Message("exit").WrapData());
            testRoom.Join(testPersonOne);
            testRoom.Join(testPersonTwo);
            testServer.HandleCommunication(testPersonOne, () => testPersonOne.ReceiveMessage());
            testServer.HandleCommunication(testPersonTwo, () => testPersonTwo.ReceiveMessage());

            Assert.Equal("testUserNameOne: test", mockSocketTwo.sentMessage[0]);
            Assert.Equal("testUserNameOne is offline.", mockSocketTwo.sentMessage[1]);
        }
Пример #6
0
        public void If_Duplicate_UserName_Server_AsksFor_AnotherUsername()
        {
            MockSocketProxy serverMockSocket = new MockSocketProxy();
            Server          testServer       = new Server(serverMockSocket);
            Room            testRoom         = testServer.GetRoom();

            MockSocketProxy mockSocketOne = new MockSocketProxy();
            NormalPerson    testPersonOne = new NormalPerson(new Person(mockSocketOne));

            mockSocketOne.internalReceiveBuffer.Add(new Message("testUserNameOne").WrapData());
            testRoom.Login(testPersonOne);

            MockSocketProxy mockSocketTwo = new MockSocketProxy();
            NormalPerson    testPersonTwo = new NormalPerson(new Person(mockSocketTwo));

            mockSocketTwo.internalReceiveBuffer.Add(new Message("testUserNameOne").WrapData());
            mockSocketTwo.internalReceiveBuffer.Add(new Message("testUserNameTwo").WrapData());
            testRoom.Login(testPersonTwo);

            Assert.Equal("S00", mockSocketTwo.sentMessage[0]);
            Assert.Equal("E00", mockSocketTwo.sentMessage[1]);
        }
Пример #7
0
 public void SetUp()
 {
     uut = new NormalPerson();
 }