示例#1
0
        public void GetItemUnderWhenThereIsOneUnder()
        {
            GameGrid grid = CreateGrid(3, 3);

            grid.GenerateItems();
            ItemSearcher itemSearcher      = CreateItemSearcher(grid);
            Item         givenItem         = grid.GetItemByRowColumn(1, 1);
            Item         expectedItemAbove = grid.GetItemByRowColumn(2, 1);

            Item itemUnderGivenOne = itemSearcher.GetItemUnder(givenItem);

            Assert.IsNotNull(itemUnderGivenOne);
            Assert.AreEqual(expectedItemAbove, itemUnderGivenOne);
        }
示例#2
0
        public void GetItemLeftWhenThereIsOneOnTheLeft()
        {
            GameGrid grid = CreateGrid(3, 3);

            grid.GenerateItems();
            ItemSearcher itemSearcher          = CreateItemSearcher(grid);
            Item         givenItem             = grid.GetItemByRowColumn(1, 1);
            Item         expectedItemOnTheLeft = grid.GetItemByRowColumn(1, 0);

            Item itemOnTheLeftOfGivenOne = itemSearcher.GetItemLeft(givenItem);

            Assert.IsNotNull(itemOnTheLeftOfGivenOne);
            Assert.AreEqual(expectedItemOnTheLeft, itemOnTheLeftOfGivenOne);
        }
示例#3
0
        public void SwappingLeftFromItemWillSwapItWithLeftItem()
        {
            Vector2      expectedSelectedItemPosition = Vector2.up;
            Vector2      selectedItemInitialPosition  = Vector2.zero;
            Item         itemLeft     = CreateItem(expectedSelectedItemPosition);
            Item         selectedItem = CreateItem(selectedItemInitialPosition);
            ItemSearcher itemSearcher = CreateLeftMockItemSearcher(() => itemLeft);
            Swapper      swapper      = CreateSwapper(itemSearcher);

            swapper.Initialize(selectedItem);

            swapper.SwapLeft();
            Vector2 selectedItemPosition = selectedItem.Position;

            Assert.AreEqual(expectedSelectedItemPosition, selectedItemPosition);
        }
示例#4
0
        public void MatchScannerIsTriggeredAftwerCompleteSwapping()
        {
            Vector2             expectedSelectedItemPosition = Vector2.up;
            Vector2             selectedItemInitialPosition  = Vector2.zero;
            Item                itemLeft            = CreateItem(expectedSelectedItemPosition, "apple");
            Item                selectedItem        = CreateItem(selectedItemInitialPosition, "banana");
            string              neighborType        = "banana";
            ItemSearcher        itemSearcher        = CreateLeftMockItemSearcher(() => itemLeft, neighborType);
            MatchScannerTrigger matchScannerTrigger = CreateMatchScannerTrigger();
            Swapper             swapper             = CreateSwapper(itemSearcher, matchScannerTrigger);

            swapper.Initialize(selectedItem);

            swapper.SwapLeft();
            swapper.CompleteSwap();
            bool wasMatchScannerTriggerCalled = (matchScannerTrigger as MockMatchScannerTrigger).WasCalled;

            Assert.IsTrue(wasMatchScannerTriggerCalled);
        }
示例#5
0
        public void ResetingWillReturnSwappedItemsToInitialPlaces()
        {
            Vector2      initialItemAbovePosition     = Vector2.up;
            Vector2      selectedItemInitialPosition  = Vector2.zero;
            Vector2      expectedSelectedItemPosition = selectedItemInitialPosition;
            Item         itemAbove    = CreateItem(initialItemAbovePosition);
            Item         selectedItem = CreateItem(selectedItemInitialPosition);
            ItemSearcher itemSearcher = CreateUpMockItemSearcher(() => itemAbove);
            Swapper      swapper      = CreateSwapper(itemSearcher);

            swapper.Initialize(selectedItem);

            swapper.SwapUp();
            swapper.Reset();
            Vector2 selectedItemPosition = selectedItem.Position;
            Vector2 itemAbovePosition    = itemAbove.Position;

            Assert.AreEqual(expectedSelectedItemPosition, selectedItemPosition);
            Assert.AreEqual(initialItemAbovePosition, itemAbovePosition);
        }
示例#6
0
        public void EndingSlideWhenThereIsNotAMatchWillLeaveItemsAtInitialPlaces()
        {
            Vector2      expectedSelectedItemPosition = Vector2.up;
            Vector2      selectedItemInitialPosition  = Vector2.zero;
            Item         itemLeft     = CreateItem(expectedSelectedItemPosition, "apple");
            Item         selectedItem = CreateItem(selectedItemInitialPosition, "banana");
            string       neighborType = "apple";
            ItemSearcher itemSearcher = CreateLeftMockItemSearcher(() => new NullItem(), neighborType);
            Swapper      swapper      = CreateSwapper(itemSearcher);

            swapper.Initialize(selectedItem);

            swapper.SwapLeft();
            swapper.CompleteSwap();
            Vector2 selectedItemPosition = selectedItem.Position;
            Vector2 itemLeftPosition     = itemLeft.Position;

            Assert.AreEqual(selectedItemInitialPosition, selectedItemPosition);
            Assert.AreEqual(expectedSelectedItemPosition, itemLeftPosition);
            Assert.IsFalse((itemSearcher as MockItemSearcher).HasItemSwapped);
        }
示例#7
0
 public Swapper(ItemSearcher itemSearcher, MatchScannerTrigger matchScannerTrigger, SwapSoundController swapSoundController)
 {
     this.itemSearcher        = itemSearcher;
     this.matchScannerTrigger = matchScannerTrigger;
     this.swapSoundController = swapSoundController;
 }
示例#8
0
 private Swapper CreateSwapper(ItemSearcher itemSearcher, MatchScannerTrigger matchScannerTrigger)
 {
     return(new Swapper(itemSearcher, matchScannerTrigger, new MockSwapSoundController()));
 }