public void ReturnsValidationResults()
        {
            //Arrange
            var canWin = new CanWin_HaveAllStatues();

            //Act
            var result = canWin.CanWin(islandTile, treasureCards);

            //Assert
            Assert.IsInstanceOfType(result, typeof(ValidationResults));
        }
        public void HaveNoStatues()
        {
            //Arrange
            var canWin = new CanWin_HaveAllStatues();

            //Act
            var result = canWin.CanWin(islandTile, treasureCards);

            //Assert
            Assert.AreEqual(result.IsValid, false);
            Assert.AreEqual(result.ErrorMessage, CanWinConstants.DONT_HAVE_ALL_STATUES);
        }
        public void EachPlayerHasATreasureStatue()
        {
            //Arrange
            var canWin = new CanWin_HaveAllStatues();

            islandTile.PlayersOnTile.First(x => x.Name == PlayerConstants.MESSENGER_NAME).HasStatueOfTheWindTreasureStatue = true;
            islandTile.PlayersOnTile.First(x => x.Name == PlayerConstants.DIVER_NAME).HasOceansChaliceTreasureStatue       = true;
            islandTile.PlayersOnTile.First(x => x.Name == PlayerConstants.EXPLORER_NAME).HasEarthStoneTreasureStatue       = true;
            islandTile.PlayersOnTile.First(x => x.Name == PlayerConstants.PILOT_NAME).HasCrystalOfFireTreasureStatue       = true;

            //Act
            var result = canWin.CanWin(islandTile, treasureCards);

            //Assert
            Assert.AreEqual(result.IsValid, true);
            Assert.AreEqual(result.ErrorMessage, null);
        }
        public void PlayerOneStatueOfTheWindTreasureStatue()
        {
            //Arrange
            var canWin = new CanWin_HaveAllStatues();

            islandTile.PlayersOnTile.First(x => x.Name == PlayerConstants.MESSENGER_NAME).HasStatueOfTheWindTreasureStatue = true;
            islandTile.PlayersOnTile.First(x => x.Name == PlayerConstants.MESSENGER_NAME).HasOceansChaliceTreasureStatue   = false;
            islandTile.PlayersOnTile.First(x => x.Name == PlayerConstants.MESSENGER_NAME).HasEarthStoneTreasureStatue      = false;
            islandTile.PlayersOnTile.First(x => x.Name == PlayerConstants.MESSENGER_NAME).HasCrystalOfFireTreasureStatue   = false;

            //Act
            var result = canWin.CanWin(islandTile, treasureCards);

            //Assert
            Assert.AreEqual(result.IsValid, false);
            Assert.AreEqual(result.ErrorMessage, CanWinConstants.DONT_HAVE_ALL_STATUES);
        }