public void TestCecilioYElObstaculoDeLadrilloSonDestruidosPorLaOndaExpansivaDeLaToleToleAlExplotar()
        {
            Personaje cecilio = new Cecilio();
            tablero.AgregarEntidad(cecilio, 5, 5);

            Obstaculo obstaculoDeLadrillo = new ObstaculoDeLadrillo();
            tablero.AgregarEntidad(obstaculoDeLadrillo, 5, 14);

            Bomba toleTole = new ToleTole();
            tablero.AgregarEntidad(toleTole, 5, 10);

            // asserts
            Assert.IsFalse(cecilio.FueDestruido());
            Assert.IsFalse(obstaculoDeLadrillo.FueDestruido());
            Assert.IsFalse(toleTole.FueDestruido());
            Assert.AreEqual(tablero.Casilla(5, 5).CantidadDeEntidades(), 1);
            Assert.AreEqual(tablero.Casilla(5, 10).CantidadDeEntidades(), 1);
            Assert.AreEqual(tablero.Casilla(5, 14).CantidadDeEntidades(), 1);
            Assert.AreEqual(tablero.CantidadDeEntidades(), 3);

            // se invoca 5 veces el metodo explotar para hacer pasar el tiempo
            toleTole.Explotar();
            toleTole.Explotar();
            toleTole.Explotar();
            toleTole.Explotar();
            toleTole.Explotar();

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

            // asserts
            Assert.IsTrue(cecilio.FueDestruido());
            Assert.IsTrue(obstaculoDeLadrillo.FueDestruido());
            Assert.IsTrue(toleTole.FueDestruido());
            Assert.AreEqual(tablero.Casilla(5, 5).CantidadDeEntidades(), 0);
            Assert.AreEqual(tablero.Casilla(5, 10).CantidadDeEntidades(), 0);
            Assert.AreEqual(tablero.Casilla(5, 14).CantidadDeEntidades(), 0);
            Assert.AreEqual(tablero.CantidadDeEntidades(), 0);
        }
        public void TestLopezReggaeAladoYElObstaculoDeLadrilloSonDestruidosPorLaOndaExpansivaDeLaMolotovAlExplotar()
        {
            Personaje lopezReggaeAlado = new LopezReggaeAlado();
            tablero.AgregarEntidad(lopezReggaeAlado, 5, 5);

            Obstaculo obstaculoDeLadrillo = new ObstaculoDeLadrillo();
            tablero.AgregarEntidad(obstaculoDeLadrillo, 5, 10);

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

            // asserts
            Assert.IsFalse(lopezReggaeAlado.FueDestruido());
            Assert.IsFalse(obstaculoDeLadrillo.FueDestruido());
            Assert.IsFalse(molotov.FueDestruido());
            Assert.AreEqual(tablero.Casilla(5, 5).CantidadDeEntidades(), 1);
            Assert.AreEqual(tablero.Casilla(5, 7).CantidadDeEntidades(), 1);
            Assert.AreEqual(tablero.Casilla(5, 10).CantidadDeEntidades(), 1);
            Assert.AreEqual(tablero.CantidadDeEntidades(), 3);

            molotov.Explotar();

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

            // asserts
            Assert.IsTrue(lopezReggaeAlado.FueDestruido());
            Assert.IsTrue(obstaculoDeLadrillo.FueDestruido());
            Assert.IsTrue(molotov.FueDestruido());
            Assert.AreEqual(tablero.Casilla(5, 5).CantidadDeEntidades(), 0);
            Assert.AreEqual(tablero.Casilla(5, 7).CantidadDeEntidades(), 0);
            Assert.AreEqual(tablero.Casilla(5, 10).CantidadDeEntidades(), 0);
            Assert.AreEqual(tablero.CantidadDeEntidades(), 0);
        }
        public void TestCecilioNoSePuedeMoverPorqueHayUnObstaculo()
        {
            cecilio = new Cecilio(Tablero.GetInstancia().Casilla(2, 2));
            Obstaculo obstaculo = new ObstaculoDeLadrillo(Tablero.GetInstancia().Casilla(2, 1));

            cecilio.MoverAlOeste();

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

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