public void ClientsReceivePersonalMessageFromClientOnceGameSessionIsLaunched() { Jabberwocky.SoC.Service.GameSessionManager gameSessionManager = null; try { // Arrange var testPlayer1Data = new Jabberwocky.SoC.Service.PlayerData(TestPlayer1UserName); var testPlayer2Data = new Jabberwocky.SoC.Service.PlayerData(TestPlayer2UserName); var testPlayer3Data = new Jabberwocky.SoC.Service.PlayerData(TestPlayer3UserName); var testPlayer4Data = new Jabberwocky.SoC.Service.PlayerData(TestPlayer4UserName); var mockPlayerCardRepository = this.CreateMockPlayerCardRepository( testPlayer1Data, testPlayer2Data, testPlayer3Data, testPlayer4Data); gameSessionManager = GameSessionManagerTestExtensions.CreateGameSessionManagerForTest(4) .AddPlayerCardRepository(mockPlayerCardRepository) .WaitUntilGameSessionManagerHasStarted(); var testPlayer1 = new TestClient(TestPlayer1UserName, gameSessionManager); var testPlayer2 = new TestClient(TestPlayer2UserName, gameSessionManager); var testPlayer3 = new TestClient(TestPlayer3UserName, gameSessionManager); var testPlayer4 = new TestClient(TestPlayer4UserName, gameSessionManager); var testScript = new TestScript(testPlayer1, testPlayer2, testPlayer3, testPlayer4); testScript.RunUntil(TestScript.RunPoints.RunUntilClientsReceiveGameInitializationMessage); var messageText = "Hello There"; var expectedMessage = new PersonalMessage(TestPlayer1UserName, messageText); // Act testPlayer1.SendPersonalMessage(messageText); // Assert testScript.WaitUntilClientsReceiveMessage(expectedMessage, testPlayer2, testPlayer3, testPlayer4); } finally { gameSessionManager?.WaitUntilGameSessionManagerHasStopped(); } }
public void ClientReceivesPersonalMessageFromAnotherClientBeforeGameSessionIsLaunched() { Jabberwocky.SoC.Service.GameSessionManager gameSessionManager = null; try { // Arrange var testPlayer1Data = new Jabberwocky.SoC.Service.PlayerData(TestPlayer1UserName); var testPlayer2Data = new Jabberwocky.SoC.Service.PlayerData(TestPlayer2UserName); var mockPlayerCardRepository = this.CreateMockPlayerCardRepository( testPlayer1Data, testPlayer2Data); gameSessionManager = GameSessionManagerTestExtensions.CreateGameSessionManagerForTest(4) .AddPlayerCardRepository(mockPlayerCardRepository) .WaitUntilGameSessionManagerHasStarted(); var testPlayer1 = new TestClient(TestPlayer1UserName, gameSessionManager); var testPlayer2 = new TestClient(TestPlayer2UserName, gameSessionManager); var testScript = new TestScript(testPlayer1, testPlayer2); testScript.AllClientsJoinGame(); testScript.WaitUntilClientsReceiveMessageOfType(typeof(PlayerDataReceivedMessage), testPlayer1, testPlayer2); var messageText = "Hello There"; var expectedMessage = new PersonalMessage(TestPlayer1UserName, messageText); // Act testPlayer1.SendPersonalMessage(messageText); // Assert testScript.WaitUntilClientsReceiveMessage(expectedMessage, testPlayer2); } finally { gameSessionManager?.WaitUntilGameSessionManagerHasStopped(); } }