public void Start_Should_DisplayUpdatedBoard_When_PlayerEnteredMove()
        {
            int inputCount = 0;
            var fakeGame   = Mock.Of <IGame>();

            Mock.Get(fakeGame).Setup(x => x.Play(It.IsAny <int>())).Returns(true);
            Mock.Get(fakeGame).SetupGet(x => x[1]).Returns("X");
            Mock.Get(fakeGame).SetupGet(x => x[2]).Returns("O");

            var fakeView = Mock.Of <IConsoleInterface>();

            Mock.Get(fakeView).Setup(x => x.ReadLine())
            .Returns(() => $"{inputCount + 1}")
            .Callback(() =>
            {
                inputCount++;
                if (inputCount == 1)
                {
                    Mock.Get(fakeGame).SetupGet(x => x.Winner).Returns("Cat's Game."); // Force game to end.
                }
            });

            var presenter = new TicTacToePresenter(fakeView, fakeGame);

            presenter.Start();

            Mock.Get(fakeView).Verify(x => x.WriteLine("   |   |   "), Times.Exactly(2));
            Mock.Get(fakeView).Verify(x => x.WriteLine("___________"), Times.Exactly(2));
            Mock.Get(fakeView).Verify(x => x.WriteLine(" X | O |   "), Times.Once);
        }
Exemple #2
0
        static void Main()
        {
            TicTacToeForm      ticTacToe          = new TicTacToeForm();
            TicTacToePresenter ticTacToePresenter = new TicTacToePresenter(ticTacToe);

            ticTacToePresenter.RunApp();
        }
        public void Start_Should_AskPlayerOForNextMove_When_GameHasNotYetEnded()
        {
            int inputCount = 0;
            var fakeGame   = Mock.Of <IGame>();

            Mock.Get(fakeGame).Setup(x => x.Play(It.IsAny <int>())).Returns(true);

            var fakeView = Mock.Of <IConsoleInterface>();

            Mock.Get(fakeView).Setup(x => x.ReadLine())
            .Returns($"{inputCount + 1}")
            .Callback(() =>
            {
                inputCount++;
                if (inputCount == 2)
                {
                    Mock.Get(fakeGame).SetupGet(x => x.Winner).Returns("Cat's Game."); // Force game to end.
                }
            });

            var presenter = new TicTacToePresenter(fakeView, fakeGame);

            presenter.Start();

            Mock.Get(fakeView).Verify(x => x.Write("Player O move: "), Times.Once);
            Mock.Get(fakeView).Verify(x => x.ReadLine(), Times.AtLeast(2));
        }
Exemple #4
0
        public void CreateInstanceOfPresenter()
        {
            var mockedView         = new Mock <ITicTacToeView>();
            var mockedUsersService = new Mock <IUsersService>();

            var presenter = new TicTacToePresenter(mockedView.Object, mockedUsersService.Object);

            Assert.That(presenter, Is.InstanceOf <Presenter <ITicTacToeView> >());
        }
Exemple #5
0
        public void InitializeCorrectly_WhenParametersAreValid()
        {
            var mockedView         = new Mock <ITicTacToeView>();
            var mockedUsersService = new Mock <IUsersService>();

            var presenter = new TicTacToePresenter(mockedView.Object, mockedUsersService.Object);

            Assert.That(presenter, Is.Not.Null);
        }
Exemple #6
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!Page.IsPostBack)
     {
         if (ThePresenter == null)
         {
             ThePresenter = new TicTacToePresenter();
         }
     }
 }
Exemple #7
0
        public void CallUsersServiceGetByIdMethod_WhenViewsEventIsRaised()
        {
            var mockedView  = new Mock <ITicTacToeView>();
            var mockedModel = new Mock <TicTacToeModel>();

            mockedView.Setup(x => x.Model).Returns(mockedModel.Object);
            var mockedUser         = new Mock <User>();
            var mockedUsersService = new Mock <IUsersService>();

            mockedUsersService.Setup(x => x.GetUserById(It.IsAny <object>())).Returns(mockedUser.Object);
            var mockedFileSaver = new Mock <IFileSaver>();
            var presenter       = new TicTacToePresenter(mockedView.Object, mockedUsersService.Object);

            mockedView.Raise(x => x.GetCurrentUser += null, null, new TicTacToeEventArgs(1));

            mockedUsersService.Verify(x => x.GetUserById(It.IsAny <object>()), Times.Once);
        }
        public void Start_Should_NotAcceptInvalidInput_When_PlayerEnteredNonNumericValue()
        {
            var fakeGame = Mock.Of <IGame>();
            var fakeView = Mock.Of <IConsoleInterface>();

            Mock.Get(fakeView).Setup(x => x.ReadLine())
            .Returns("A")
            .Callback(() =>
            {
                Mock.Get(fakeGame).SetupGet(x => x.Winner).Returns("Cat's Game."); // Force game to end.
            });

            var presenter = new TicTacToePresenter(fakeView, fakeGame);

            presenter.Start();

            Mock.Get(fakeView).Verify(x => x.WriteLine("Your move is not valid."), Times.Once);
        }
        public void Start_Should_AskPlayerXForFirstMove()
        {
            var fakeGame = Mock.Of <IGame>();
            var fakeView = Mock.Of <IConsoleInterface>();

            Mock.Get(fakeView).Setup(x => x.ReadLine())
            .Returns("1")
            .Callback(() =>
            {
                Mock.Get(fakeGame).SetupGet(x => x.Winner).Returns("Cat's Game."); // Force game to end.
            });

            var presenter = new TicTacToePresenter(fakeView, fakeGame);

            presenter.Start();

            Mock.Get(fakeView).Verify(x => x.WriteLine("Player X will go first..."), Times.Once);
            Mock.Get(fakeView).Verify(x => x.Write("Player X move: "), Times.Once);
            Mock.Get(fakeView).Verify(x => x.ReadLine(), Times.Once);
        }
        public void Start_Should_DisplayWelcomeMessage()
        {
            var fakeGame = Mock.Of <IGame>();

            var fakeView = Mock.Of <IConsoleInterface>();

            Mock.Get(fakeView).Setup(x => x.ReadLine())
            .Returns("1")
            .Callback(() =>
            {
                Mock.Get(fakeGame).SetupGet(x => x.Winner).Returns("Cat's Game."); // Force game to end.
            });


            var presenter = new TicTacToePresenter(fakeView, fakeGame);

            presenter.Start();

            Mock.Get(fakeView).Verify(x => x.WriteLine("Welcome to Tic-Tac-Toe Game!"), Times.Once);
        }
        public void Start_Should_DisplayMessage_When_GameEndedWithATie()
        {
            var endGameWinner = "-";
            var fakeGame      = Mock.Of <IGame>();
            var fakeView      = Mock.Of <IConsoleInterface>();

            Mock.Get(fakeView).Setup(x => x.ReadLine())
            .Returns("1")
            .Callback(() =>
            {
                Mock.Get(fakeGame).SetupGet(x => x.Winner).Returns(endGameWinner); // Force game to end.
            });

            var presenter = new TicTacToePresenter(fakeView, fakeGame);

            presenter.Start();

            Mock.Get(fakeView).Verify(x => x.WriteLine("Cat's Game!"), Times.Once);
            Mock.Get(fakeView).Verify(x => x.WriteLine("Press any key to exit.."), Times.Once);
            Mock.Get(fakeView).Verify(x => x.ReadKey(), Times.Once);
        }
Exemple #12
0
 public App(TicTacToePresenter presenter)
 {
     _presenter = presenter;
 }
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!Page.IsPostBack)
     {
        if(ThePresenter == null)
             ThePresenter=new TicTacToePresenter();
     }
 }