Esempio n. 1
0
        public void Given_SomeGame_With_Player2_When_Player2_Select_A_Case_Then_The_Case_Is_Marked_By_O_And_Player1_Could_Play()
        {
            using (var consoleHooker = new TestsHelpers.ConsoleHooker())
            {
                // Arrange
                string expectedPlayer      = "Vince";
                string Player2             = "kavin";
                string expectedGrid        = "XO2OOXX78";
                var    stubGameViewFactory = Substitute.For <IGameViewFactory>();
                var    moq = Substitute.For <IGameView>();
                stubGameViewFactory.Create(Arg.Any <IUICommandChannel>()).Returns(moq);

                var sutBuilder = new CompositionRootBuilder()
                                 .WithPlayer1(expectedPlayer)
                                 .WithPlayer2(Player2)
                                 .WithPlayer2AsCurrentPlayer()
                                 .WithGrid(new bool?[, ]
                {
                    { true, false, true },
                    { null, false, null },
                    { null, true, null }
                })
                                 .WithGameViewFactory(stubGameViewFactory);
                var sut = sutBuilder.Create();

                // Act
                sut.ApplyPlayerSelection(Player2, 1, 0);

                // Assert
                moq.Received().Render(new GameDto(expectedGrid, expectedPlayer));
            }
        }
Esempio n. 2
0
        public void Given_NewGame_With_Player1_When_Game_Starts_Then_EmptyGrid_Is_Rendered_For_Player1()
        {
            using (var consoleHooker = new TestsHelpers.ConsoleHooker())
            {
                // Arrange
                string expectedPlayer      = "Player1";
                string expectedGrid        = "012345678";
                var    stubGameViewFactory = Substitute.For <IGameViewFactory>();
                var    sutBuilder          = new CompositionRootBuilder().WithPlayer1(expectedPlayer).WithGameViewFactory(stubGameViewFactory);
                var    moq = Substitute.For <IGameView>();
                stubGameViewFactory.Create(Arg.Any <IUICommandChannel>()).Returns(moq);
                var sut = sutBuilder.Create();

                // Act
                sut.Start();

                // Assert
                moq.Received().Render(new GameDto(expectedGrid, expectedPlayer));
            }
        }