Exemplo n.º 1
0
        public void RandomEmptySlotHasMovableNeighbors()
        {
            Game.GridImplementation slotGrid    = CreateSlotGrid();
            SlotSorting             slotSorting = CreateSlotSortingToGrid(slotGrid);

            GameObject        randomSlotObject = slotSorting.GetRandomEmptySlotObject();
            GridItemMover     slotMover        = randomSlotObject.GetComponent <GridItemMover>();
            List <GameObject> slotNeighbors    = slotGrid.GetItemNeighbors(slotMover);

            Assert.Greater(slotNeighbors.Count, 1);
            foreach (GameObject slotNeighbor in slotNeighbors)
            {
                PieceDestinationController currentSlotPieceDestinationController = slotNeighbor.GetComponent <PieceDestinationController>();

                Assert.IsTrue(currentSlotPieceDestinationController.CanMovePiece());
            }
        }
Exemplo n.º 2
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.º 3
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.º 4
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 CanMovePiece()
 {
     return(pieceDestinationController.CanMovePiece());
 }