public void ShouldInvokeAct()
        {
            //Arrange
            FakeSelectMoveAction           nextAction = new FakeSelectMoveAction.Builder().Act(null).Build();
            MediumComputerSelectMoveAction subject    = new MediumComputerSelectMoveAction(nextAction);

            //Act
            subject.Act(null, null, null);

            //Assert
            nextAction.AssertActInvoked();
        }
        public void ShouldHaveExpectedOrder()
        {
            //Arrange
            ChainValidation chainValidation = new ChainValidation()
                                              .Add <CenterSquareSelectMoveAction>()
                                              .Add <CurrentPlayerWinningSelectMoveAction>()
                                              .Add <OtherPlayerWinningSelectMoveAction>()
                                              .Add <RandomSpaceSelectMoveAction>();

            //Act
            MediumComputerSelectMoveAction subject = new MediumComputerSelectMoveAction();

            //Assert
            chainValidation.AssertExpectedChain(subject);
        }