public void Build_StandardBoard_ReturnsCorrectInitializationData() { // Arrange var board = new GameBoardManager(BoardSizes.Standard); // Act var data = GameInitializationDataBuilder.Build(board); // Assert // 0 = desert, 1 = brick, 2 = grain, 3 = lumber, 4 = ore, 5 = wool // 20 = 2 on dice, 30 = 3 on dice, 40 = 4 on dice, .... 110 = 11 on dice, 120 = 12 on dice const Byte brick = 1; const Byte grain = 2; const Byte lumber = 3; const Byte ore = 4; const Byte wool = 5; const Byte diceroll2 = 20; const Byte diceroll3 = 30; const Byte diceroll4 = 40; const Byte diceroll5 = 50; const Byte diceroll6 = 60; const Byte diceroll8 = 80; const Byte diceroll9 = 90; const Byte diceroll10 = 100; const Byte diceroll11 = 110; const Byte diceroll12 = 120; data.BoardData.Length.ShouldBe(19); data.BoardData[0].ShouldBe <Byte>(0); data.BoardData[1].ShouldBe <Byte>(diceroll8 + brick); data.BoardData[2].ShouldBe <Byte>(diceroll5 + ore); data.BoardData[3].ShouldBe <Byte>(diceroll4 + brick); data.BoardData[4].ShouldBe <Byte>(diceroll3 + lumber); data.BoardData[5].ShouldBe <Byte>(diceroll10 + wool); data.BoardData[6].ShouldBe <Byte>(diceroll2 + grain); data.BoardData[7].ShouldBe <Byte>(diceroll11 + lumber); data.BoardData[8].ShouldBe <Byte>(diceroll6 + ore); data.BoardData[9].ShouldBe <Byte>(diceroll11 + grain); data.BoardData[10].ShouldBe <Byte>(diceroll9 + wool); data.BoardData[11].ShouldBe <Byte>(diceroll6 + lumber); data.BoardData[12].ShouldBe <Byte>(diceroll12 + wool); data.BoardData[13].ShouldBe <Byte>(diceroll5 + brick); data.BoardData[14].ShouldBe <Byte>(diceroll4 + lumber); data.BoardData[15].ShouldBe <Byte>(diceroll3 + ore); data.BoardData[16].ShouldBe <Byte>(diceroll9 + grain); data.BoardData[17].ShouldBe <Byte>(diceroll10 + wool); data.BoardData[18].ShouldBe <Byte>(diceroll8 + grain); }
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(); } }