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()); } }
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()); }
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); }
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()); }