Example #1
0
        public void Print_ShouldPrint()
        {
            //Arrange
            FakePrinter fakePrinter = new FakePrinter.Builder().Print().Build();
            Board       subject     = new Board(null, null, fakePrinter);

            //Act
            subject.Print();

            //Assert
            fakePrinter.AssertPrintInvoked();
        }
        public void ShouldNotPrintWhenNotTieAndInvokeNext()
        {
            //Arrange
            Bool                   expected              = Bool.False;
            FakePrinter            fakePrinter           = new FakePrinter.Builder().Build();
            FakeTieEndsGameAction  fakeTieEndsGameAction = new FakeTieEndsGameAction.Builder().Act(expected).Build();
            PrintTieEndsGameAction subject = new PrintTieEndsGameAction(fakeTieEndsGameAction, fakePrinter);

            //Act
            Bool actual = subject.Act(expected);

            //Assert
            actual.Should().NotBeNull();
            fakeTieEndsGameAction.AssertActInvoked();
        }
Example #3
0
        public void ShouldWinPrintActivePlayer()
        {
            //Arrange
            FakePlayerEndsGameAction     fakePlayerEndsGameAction = new FakePlayerEndsGameAction.Builder().Act(Bool.True).Build();
            PrintWinPlayerEndsGameAction subject = new PrintWinPlayerEndsGameAction(fakePlayerEndsGameAction);
            FakePrinter fakePrinter = new FakePrinter.Builder().Print().Build();
            FakePlayer  fakePlayer  = new FakePlayer.Builder().WinPrinter(fakePrinter).Build();

            //Act
            bool actual = subject.Act(null, fakePlayer, null);

            //Assert
            actual.Should().BeTrue();
            fakePrinter.AssertPrintInvoked();
            fakePlayerEndsGameAction.AssertActInvoked();
        }
Example #4
0
        public void AvailableSpaces_ShouldHaveOnlyAvailableCells()
        {
            //Arrange
            FakePrinter   fakePrinter      = new FakePrinter.Builder().Build();
            FakeGameState fakeGameState    = new FakeGameState.Builder().Build();
            FakeCell      fakeCell         = new FakeCell.Builder().IsSelected(Bool.False).Build();
            FakeCell      fakeCellSelected = new FakeCell.Builder().IsSelected(Bool.True).Build();
            Board         subject          = new Board(new CellCollection(new ICell[] { fakeCell, fakeCellSelected }),
                                                       fakeGameState, fakePrinter);

            //Act
            ICellCollection actual = subject.AvailableSpaces();

            //Assert
            ((int)actual.Count()).Should().Be(1);
        }
Example #5
0
        public void ClaimEndsGame_ReturnTrueWhenOver()
        {
            //Arrange
            FakePrinter        fakePrinter        = new FakePrinter.Builder().Build();
            FakeCell           fakeCell           = new FakeCell.Builder().Build();
            FakeCellCollection fakeCellCollection = new FakeCellCollection.Builder()
                                                    .UpdateTo()
                                                    .Build();
            FakeGameState fakeGameState = new FakeGameState.Builder().IsGameOver(Bool.True).Build();
            FakePlayer    fakePlayer    = new FakePlayer.Builder().Cell(fakeCell).Build();
            Board         subject       = new Board(fakeCellCollection, fakeGameState, fakePrinter);

            //Act
            Bool actual = subject.ClaimEndsGame(null, fakePlayer);

            //Assert
            ((bool)actual).Should().BeTrue();
        }
Example #6
0
        public void ClaimEndsGame_ShouldClaimCellForPlayer()
        {
            //Arrange
            FakePrinter     fakePrinter      = new FakePrinter.Builder().Build();
            FakeCell        fakeCellBoard    = new FakeCell.Builder().IsSelected(Bool.False).Value("1").Build();
            FakeCell        fakeCellSelected = new FakeCell.Builder().IsSelected(Bool.False).Value("1").Build();
            FakeCell        fakeCellPlayer   = new FakeCell.Builder().AsSelected(fakeCellSelected).Value("1").Build();
            ICellCollection cellCollection   = new CellCollection(new ICell[] { fakeCellBoard });
            FakeGameState   fakeGameState    = new FakeGameState.Builder().IsGameOver(Bool.False).Build();
            FakePlayer      fakePlayer       = new FakePlayer.Builder().Cell(fakeCellPlayer).Build();
            Board           subject          = new Board(cellCollection, fakeGameState, fakePrinter);

            //Act
            subject.ClaimEndsGame(fakeCellBoard, fakePlayer);

            //Assert
            cellCollection.At(new IntOf(0)).Should().NotBe(fakeCellBoard);
        }