public void TestElObstaculoDeCementoEsDestruidoPorLasOndasExpansivasDeLas2MolotovsAlExplotar()
        {
            Obstaculo obstaculoDeCemento = new ObstaculoDeCemento();
            tablero.AgregarEntidad(obstaculoDeCemento, 5, 5);

            Bomba molotov_1 = new Molotov();
            tablero.AgregarEntidad(molotov_1, 5, 7);

            Bomba molotov_2 = new Molotov();
            tablero.AgregarEntidad(molotov_2, 7, 5);

            // asserts
            Assert.IsFalse(obstaculoDeCemento.FueDestruido());
            Assert.IsFalse(molotov_1.FueDestruido());
            Assert.IsFalse(molotov_2.FueDestruido());
            Assert.AreEqual(tablero.Casilla(5, 5).CantidadDeEntidades(), 1);
            Assert.AreEqual(tablero.Casilla(5, 7).CantidadDeEntidades(), 1);
            Assert.AreEqual(tablero.Casilla(7, 5).CantidadDeEntidades(), 1);
            Assert.AreEqual(tablero.CantidadDeEntidades(), 3);

            molotov_1.Explotar();
            molotov_2.Explotar();

            // actualiza el tablero, removiendo a aquellas entidades que fueron destruidas
            tablero.Actualizar();

            // asserts
            Assert.IsTrue(obstaculoDeCemento.FueDestruido());
            Assert.IsTrue(molotov_1.FueDestruido());
            Assert.IsTrue(molotov_2.FueDestruido());
            Assert.AreEqual(tablero.Casilla(5, 5).CantidadDeEntidades(), 0);
            Assert.AreEqual(tablero.Casilla(5, 7).CantidadDeEntidades(), 0);
            Assert.AreEqual(tablero.Casilla(7, 5).CantidadDeEntidades(), 0);
            Assert.AreEqual(tablero.CantidadDeEntidades(), 0);
        }
        public void TestLopezReggaeAladoPasaPorSobreUnObstaculo()
        {
            lopezReggaeAlado = new LopezReggaeAlado(Tablero.GetInstancia().Casilla(1, 1));
            Obstaculo obstaculo = new ObstaculoDeCemento(Tablero.GetInstancia().Casilla(1, 2));

            lopezReggaeAlado.MoverAlEste();

            // asserts
            // en la misma posicion que el obstaculo
            Assert.AreEqual(lopezReggaeAlado.Posicion().X, 1);
            Assert.AreEqual(lopezReggaeAlado.Posicion().Y, 2);

            lopezReggaeAlado.MoverAlEste();

            // asserts
            // paso por encima del obstaculo
            Assert.AreEqual(lopezReggaeAlado.Posicion().X, 1);
            Assert.AreEqual(lopezReggaeAlado.Posicion().Y, 3);

            // limpia el tablero
            Tablero.Vaciar();
        }
        public void TestLopezReggaeNoSePuedeMoverPorqueHayUnObstaculo()
        {
            lopezReggae = new LopezReggae(Tablero.GetInstancia().Casilla(2, 2));
            Obstaculo obstaculo = new ObstaculoDeCemento(Tablero.GetInstancia().Casilla(1, 2));

            lopezReggae.MoverAlNorte();

            // asserts
            Assert.AreEqual(lopezReggae.Posicion().X, 2);
            Assert.AreEqual(lopezReggae.Posicion().Y, 2);

            // limpia el tablero
            Tablero.Vaciar();
        }