public void PlayerReceivesConfirmationOnceJoinedToGameSession() { // Arrange Jabberwocky.SoC.Service.GameSessionManager gameSessionManager = null; try { gameSessionManager = GameSessionManagerTestExtensions.CreateGameSessionManagerForTest(4) .WaitUntilGameSessionManagerHasStarted(); var testPlayer1 = new TestClient(TestPlayer1UserName, gameSessionManager); var testScript = new TestScript(testPlayer1); // Act testScript.AllClientsJoinGame(); testScript.WaitUntilClientsReceiveMessageOfType(typeof(ConfirmGameJoinedMessage), testPlayer1); // Assert var receivedMessage = testPlayer1.GetLastMessage(); receivedMessage.ShouldBeOfType <ConfirmGameJoinedMessage>(); ((ConfirmGameJoinedMessage)receivedMessage).GameState.ShouldBe(Jabberwocky.SoC.Service.GameSessionManager.GameStates.Lobby); } finally { gameSessionManager?.WaitUntilGameSessionManagerHasStopped(); } }
public void AllClientsReceiveBoardDataWhenGameSessionIsLaunched() { 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 gameInitializationData = GameInitializationDataBuilder.Build(new GameBoardManager(BoardSizes.Standard)); var expectedMessage = new InitializeGameMessage(gameInitializationData); // Act var testScript = new TestScript(testPlayer1, testPlayer2, testPlayer3, testPlayer4); testScript.RunUntil(TestScript.RunPoints.RunUntilClientsReceiveGameInitializationMessage); // Assert testPlayer1.GetLastMessage().IsSameAs(expectedMessage); testPlayer2.GetLastMessage().IsSameAs(expectedMessage); testPlayer3.GetLastMessage().IsSameAs(expectedMessage); testPlayer4.GetLastMessage().IsSameAs(expectedMessage); } finally { gameSessionManager?.WaitUntilGameSessionManagerHasStopped(); } }