public void MustIgnoreMoveOnExistingPiece(int x, int y)
        {
            var spy             = new BoardWriterSpy();
            var boardReaderStub = new PieceSetOriginBoardReaderStub(x, y);

            var placePiece = new PlacePiece(spy, boardReaderStub);

            placePiece.Execute(x, y);

            Assert.That(spy.LastBoard, Is.Null);
        }
        public void GivenAPieceHasBeenPlaced_WhenPlacingAPiece_ThenUpdatedBoardIncludesBothPieces()
        {
            var spy             = new BoardWriterSpy();
            var boardReaderStub = new PieceSetOriginBoardReaderStub();
            var placePiece      = new PlacePiece(spy, boardReaderStub);

            placePiece.Execute(1, 0);

            Assert.AreEqual(0, spy.LastBoard.PieceAt(0, 0));
            Assert.AreEqual(1, spy.LastBoard.PieceAt(1, 0));
        }
        public void DoesNotMutateTheBoard()
        {
            var spy             = new BoardWriterSpy();
            var boardReaderStub = new PieceSetOriginBoardReaderStub();
            var originalBoard   = boardReaderStub.Fetch();

            var placePiece = new PlacePiece(spy, boardReaderStub);

            placePiece.Execute(1, 0);

            Assert.IsNull(originalBoard.PieceAt(1, 0));
        }