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); }
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.")); }
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()); }
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); } }
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]); }
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]); }
public void SetUp() { uut = new NormalPerson(); }