Exemplo n.º 1
0
        public void WhenEmptyStateAllNeighBorAreMovable()
        {
            grid = CreateSlotGrid(3, 3);
            PieceDestinationController currentSlot    = GetSlotByRowAndColumn(1, 1);
            PieceDestinationController leftNeighbor   = GetSlotByRowAndColumn(1, 0);
            PieceDestinationController rightNeighbor  = GetSlotByRowAndColumn(1, 2);
            PieceDestinationController upNeighbor     = GetSlotByRowAndColumn(0, 1);
            PieceDestinationController bottomNeighbor = GetSlotByRowAndColumn(2, 1);

            currentSlot.SetEmpty();
            currentSlot.Clean();

            Assert.IsTrue(currentSlot.CanReceivePiece());
            Assert.IsTrue(leftNeighbor.CanMovePiece());
            Assert.IsTrue(upNeighbor.CanMovePiece());
            Assert.IsTrue(rightNeighbor.CanMovePiece());
            Assert.IsTrue(bottomNeighbor.CanMovePiece());
        }
Exemplo n.º 2
0
        public void FirstIsMovableAndSecondIsEmpty()
        {
            PieceDestinationController firstPieceDestinationController  = CreatePieceDestinationController();
            PieceDestinationController secondPieceDestinationController = CreatePieceDestinationController();

            firstPieceDestinationController.SetMovable();
            secondPieceDestinationController.SetEmpty();
            SlotSelectionServer slotSelectionServer = new StubSlotSelectionServer(true, false, CreatePieceObject());

            Assert.IsTrue(firstPieceDestinationController.CanMovePiece());
            Assert.IsTrue(secondPieceDestinationController.CanReceivePiece());

            firstPieceDestinationController.TakePiece();
            secondPieceDestinationController.ReceivePieceFromSlot(slotSelectionServer);

            Assert.IsTrue(secondPieceDestinationController.State is MovableState);
            Assert.IsTrue(firstPieceDestinationController.State is EmptyState);
        }
Exemplo n.º 3
0
        public void TouchingFirstThatCanNotTakePieceAndSecondThatCanReceive()
        {
            SlotSelection slotSelection = CreateSlotSelection();
            PieceDestinationController firstPieceDestinationController = CreatePieceDestinationController();

            firstPieceDestinationController.SetEmpty();
            PieceDestinationController secondPieceDestinationController = CreatePieceDestinationController();

            secondPieceDestinationController.SetEmpty();
            Slot slot1 = CreateSlot(slotSelection, firstPieceDestinationController);
            Slot slot2 = CreateSlot(slotSelection, secondPieceDestinationController);

            slot1.Touch();
            slot2.Touch();

            Assert.IsTrue(firstPieceDestinationController.CanReceivePiece());
            Assert.IsTrue(secondPieceDestinationController.CanReceivePiece());
            Assert.IsFalse(firstPieceDestinationController.CanMovePiece());
            Assert.IsFalse(secondPieceDestinationController.CanMovePiece());
        }
 public bool CanReceivePiece()
 {
     return(pieceDestinationController.CanReceivePiece());
 }