public void TestBombitaColocaUnaBombaMolotov()
        {
            bombita = Bombita.GetInstancia();
            Casilla posicion = Tablero.GetInstancia().Casilla(1, 1);
            bombita.PosicionarEn(posicion);

            // asserts
            Assert.IsTrue(posicion.TienePersonaje());
            Assert.IsFalse(posicion.TieneBomba());

            bombita.LanzarExplosivo();

            // asserts
            Assert.IsTrue(posicion.TienePersonaje());
            Assert.IsTrue(posicion.TieneBomba());

            // comprueba que en verdad bombita haya plantado una molotov (tiene rango 3 expansivo)
            Entidad bomba = posicion.GetEntidades()[1];
            // asserts
            Assert.AreEqual(((Bomba)bomba).GetRango(), 3);

            // limpia el tablero
            Tablero.Vaciar();
        }
        public void TestBombitaNoSePuedeMoverPorqueHayUnObstaculo()
        {
            bombita = Bombita.GetInstancia();
            bombita.PosicionarEn(Tablero.GetInstancia().Casilla(1, 1));
            Obstaculo obstaculo = new ObstaculoDeAcero(Tablero.GetInstancia().Casilla(2, 1));

            bombita.MoverAlSur();

            // asserts
            Assert.AreEqual(bombita.Posicion().X, 1);
            Assert.AreEqual(bombita.Posicion().Y, 1);

            // limpia el tablero
            Tablero.Vaciar();
        }
        public void TestBombitaSeMueveHaciaLaIzquierda()
        {
            bombita = Bombita.GetInstancia();
            bombita.PosicionarEn(Tablero.GetInstancia().Casilla(2, 2));
            bombita.MoverAlOeste();

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

            // limpia el tablero
            Tablero.Vaciar();
        }
        public void TestIntentarQueBombitaLanceBombasSinEsperarQueLaAnteriorHayaExplotadoNoTieneEfecto()
        {
            Casilla posicion = Tablero.GetInstancia().Casilla(1, 1);

            bombita = Bombita.GetInstancia();
            bombita.PosicionarEn(posicion);

            // en principio en la posicion d ebombita, no hay bombas
            // asserts
            Assert.IsFalse(posicion.TieneBomba());
            Assert.AreEqual(posicion.CantidadDeEntidades(), 1);

            // bombita lanza su primera bomba
            bombita.LanzarExplosivo();
            // asserts
            Assert.IsTrue(posicion.TieneBomba());
            Assert.AreEqual(posicion.CantidadDeEntidades(), 2);

            // pero ahora cuando intenta lanzar la segunda, la tercera y la cuarta,
            // no puede hacerlo ya que la primera colocada, aun no exploto
            bombita.LanzarExplosivo();
            bombita.LanzarExplosivo();
            bombita.LanzarExplosivo();
            // asserts
            Assert.IsTrue(posicion.TieneBomba());
            Assert.AreEqual(posicion.CantidadDeEntidades(), 2);

            // limpia el tablero
            Tablero.Vaciar();
        }
        public void TestBombitaNoSePuedeMoverPorqueSuProximaPosicionEstaFueraDelTablero()
        {
            bombita = Bombita.GetInstancia();
            bombita.PosicionarEn(Tablero.GetInstancia().Casilla(1, 1));

            bombita.MoverAlOeste();

            // asserts
            Assert.AreEqual(bombita.Posicion().X, 1);
            Assert.AreEqual(bombita.Posicion().Y, 1);

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