public void BoardAtDefaultSettings()
        {
            //Arrange
            var canLose = new CanLose_TreasureTilesLost();

            //Act
            var result = canLose.IsValid(IslandBoard, 0);

            //Assert
            Assert.AreEqual(result.IsValid, true);
            Assert.AreEqual(result.ErrorMessage, null);
        }
        public void LastOceansChaliceGone()
        {
            //Arrange
            var canLose = new CanLose_TreasureTilesLost();

            OceansChaliceTiles.Last().SubmergedState = Enum.TileState.Gone.ToString();

            //Act
            var result = canLose.IsValid(IslandBoard, 0);

            //Assert
            Assert.AreEqual(result.IsValid, true);
            Assert.AreEqual(result.ErrorMessage, null);
        }
        public void OneStatueOfTheWindGone()
        {
            //Arrange
            var canLose = new CanLose_TreasureTilesLost();

            StatueOfTheWindTiles.First().SubmergedState = Enum.TileState.Gone.ToString();

            //Act
            var result = canLose.IsValid(IslandBoard, 0);

            //Assert
            Assert.AreEqual(result.IsValid, true);
            Assert.AreEqual(result.ErrorMessage, null);
        }
        public void TwoEarthStoneGone()
        {
            //Arrange
            var canLose = new CanLose_TreasureTilesLost();

            EarthStoneTiles.First().SubmergedState = Enum.TileState.Gone.ToString();
            EarthStoneTiles.Last().SubmergedState  = Enum.TileState.Gone.ToString();

            //Act
            var result = canLose.IsValid(IslandBoard, 0);

            //Assert
            Assert.AreEqual(result.IsValid, false);
            Assert.AreEqual(result.ErrorMessage, EarthStoneGone);
        }
        public void OneOfEachFloodedOneOfEachGoneTreasureTilesFlooded()
        {
            //Arrange
            var canLose = new CanLose_TreasureTilesLost();

            EarthStoneTiles.Last().SubmergedState      = Enum.TileState.Flodded.ToString();
            OceansChaliceTiles.First().SubmergedState  = Enum.TileState.Flodded.ToString();
            StatueOfTheWindTiles.Last().SubmergedState = Enum.TileState.Flodded.ToString();
            CrystalOfFireTiles.Last().SubmergedState   = Enum.TileState.Flodded.ToString();

            EarthStoneTiles.First().SubmergedState      = Enum.TileState.Gone.ToString();
            OceansChaliceTiles.First().SubmergedState   = Enum.TileState.Gone.ToString();
            StatueOfTheWindTiles.First().SubmergedState = Enum.TileState.Gone.ToString();
            CrystalOfFireTiles.First().SubmergedState   = Enum.TileState.Gone.ToString();

            //Act
            var result = canLose.IsValid(IslandBoard, 0);

            //Assert
            Assert.AreEqual(result.IsValid, true);
            Assert.AreEqual(result.ErrorMessage, null);
        }
        public void AllTreasureTilesGone()
        {
            //Arrange
            var canLose = new CanLose_TreasureTilesLost();

            EarthStoneTiles.Last().SubmergedState      = Enum.TileState.Gone.ToString();
            OceansChaliceTiles.Last().SubmergedState   = Enum.TileState.Gone.ToString();
            StatueOfTheWindTiles.Last().SubmergedState = Enum.TileState.Gone.ToString();
            CrystalOfFireTiles.Last().SubmergedState   = Enum.TileState.Gone.ToString();

            EarthStoneTiles.First().SubmergedState      = Enum.TileState.Gone.ToString();
            OceansChaliceTiles.First().SubmergedState   = Enum.TileState.Gone.ToString();
            StatueOfTheWindTiles.First().SubmergedState = Enum.TileState.Gone.ToString();
            CrystalOfFireTiles.First().SubmergedState   = Enum.TileState.Gone.ToString();

            //Act
            var result = canLose.IsValid(IslandBoard, 0);

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