public void BombitaAgarreUnBombaToleToleYCambieElTipoDeBombaQueLanza()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);// Arranca en (0,0)
            BombaToleTole articulo = new BombaToleTole();
            tablero.AgregarEntidadEnCasillero(articulo, 0, 1);

            bombita.MoverAbajo();
            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();

            bombita.Bomba.CuandoPaseElTiempo(1);
            Assert.IsInstanceOf<Molotov>(bombita.Bomba);

            bombita.MoverArriba();
            bombita.MoverArriba();
            bombita.MoverDerecha();
            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();
            bombita.Bomba.CuandoPaseElTiempo(10);
            Assert.IsTrue(bombita.Bomba.FueDestruido());
            Assert.IsInstanceOf<ToleTole>(bombita.Bomba);

            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();
            bombita.Bomba.CuandoPaseElTiempo(5);
            Assert.IsInstanceOf<ToleTole>(bombita.Bomba);
        }
        public void BombitaAgarreUnTimerYSusBombasTardenMasEnExplotar()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);// Arranca en (0,0)
            Timer articulo = new Timer();
            tablero.AgregarEntidadEnCasillero(articulo, 0, 1);

            bombita.MoverAbajo();
            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();

            bombita.Bomba.CuandoPaseElTiempo(1);
            Assert.IsTrue(bombita.Bomba.FueDestruido());

            bombita.MoverArriba();
            bombita.MoverArriba();
            Assert.AreEqual(0.85,bombita.PorcentajeDeRetardo);
            bombita.MoverDerecha();
            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();
            bombita.Bomba.CuandoPaseElTiempo(0.9);

            Assert.IsTrue(bombita.Bomba.FueDestruido());

            Assert.AreEqual(3, bombita.Vidas);
        }
        public void PruebaQueCuandoBombitaLoAgarrePaseDeNivel()
        {
            Tablero tablero = new Tablero();
            Salida salida = new Salida();
            tablero.AgregarEntidadEnCasillero(salida, 5, 5);
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 6, 5);

            bombita.MoverArriba();

            Assert.AreEqual(2, tablero.NivelActual);
        }
        public void PruebaQueUnaMolotovNoLoDestruya()
        {
            Tablero tablero = new Tablero();
            Salida salida = new Salida();
            tablero.AgregarEntidadEnCasillero(salida, 5, 5);
            Molotov bomba = new Molotov();
            tablero.AgregarEntidadEnCasillero(bomba, 5, 6);

            bomba.ActivarBomba();

            bomba.CuandoPaseElTiempo(5);

            Assert.IsFalse(salida.FueDestruido());
        }
        public void PruebaAgregarUnaEntidadAUnaCasillaDelTableroYVerificarQueEstaVacioDevuelvaFalse()
        {
            Tablero tablero = new Tablero();
            BloqueDeAcero bloque = new BloqueDeAcero();
            tablero.AgregarEntidadEnCasillero(bloque, 0, 0);

            Assert.IsFalse(bloque.Posicion.EstaVacio());
            Assert.IsFalse(tablero.ObtenerCasillero(0, 0).EstaVacio());
        }
        public void CuandoSeMueveBombitaALaDerechaCambiaSuPosicionEnElTablero()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);

            bombita.MoverDerecha();

            Assert.AreEqual(1, bombita.Posicion.Columna);
            Assert.AreEqual(0, bombita.Posicion.Fila);
        }
        public void CuandoSeMueveLopezRALaDerechaCambiaSuPosicionEnElTablero()
        {
            Tablero tablero = new Tablero();
            LopezR lopez = new LopezR();
            tablero.AgregarEntidadEnCasillero(lopez, 0, 0);

            lopez.MoverDerecha();

            Assert.AreEqual(1, lopez.Posicion.Columna);
            Assert.AreEqual(0, lopez.Posicion.Fila);
        }
        public void PruebaLaCreacionDeUnaSalidaEnUnaPosicionDeterminadaEnUnTablero()
        {
            Tablero tablero = new Tablero();
            Salida salida = new Salida();
            tablero.AgregarEntidadEnCasillero(salida, 5, 5);

            Assert.IsNotNull(salida);
            Assert.IsFalse(salida.FueDestruido());
            Assert.AreEqual(5, salida.Posicion.Fila);
            Assert.AreEqual(5, salida.Posicion.Columna);
        }
        public void PruebaQueSeGuardeCorrectamenteLaPosicionDeBombita()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 5, 6);

            Casillero casillero = tablero.PosicionBombita;

            Assert.AreEqual(5, casillero.Fila);
            Assert.AreEqual(6, casillero.Columna);
        }
        public void CuandoSeMueveCecilioALaDerechaCambiaSuPosicionEnElTablero()
        {
            Tablero tablero = new Tablero();
            Cecilio cecilio = new Cecilio();
            tablero.AgregarEntidadEnCasillero(cecilio, 0, 0);

            cecilio.MoverDerecha();

            Assert.AreEqual(1, cecilio.Posicion.Columna);
            Assert.AreEqual(0, cecilio.Posicion.Fila);
        }
示例#11
0
        public void PruebaQueUnaMolotovCuandoSeActivaYNoPasaTiempoNoEsteDestruida()
        {
            Tablero tablero = new Tablero();
            Molotov bomba = new Molotov();
            tablero.AgregarEntidadEnCasillero(bomba, 0, 0);

            bomba.ActivarBomba();

            bomba.CuandoPaseElTiempo(0);

            Assert.IsFalse(bomba.FueDestruido());
        }
示例#12
0
        public void PruebaQueUnaMolotovCuandoSeActivaSiSeQuiereVolverAExplotarLanceUnaExcepcion()
        {
            Tablero tablero = new Tablero();
            Molotov bomba = new Molotov();
            tablero.AgregarEntidadEnCasillero(bomba, 0, 0);

            bomba.ActivarBomba();

            bomba.CuandoPaseElTiempo(5);

            Assert.Throws<EntidadYaDestruidaException>(() => bomba.ActivarBomba());
        }
示例#13
0
        public void PruebaQueUnaMolotovCuandoSeActivaLuegoDeQuePaseUnTiempo1EsteDestruida()
        {
            Tablero tablero = new Tablero();
            Molotov bomba = new Molotov();
            tablero.AgregarEntidadEnCasillero(bomba, 0, 0);

            bomba.ActivarBomba();

            bomba.CuandoPaseElTiempo(1);

            Assert.IsTrue(bomba.FueDestruido());
        }
        public void PruebaQueSeGuardeCorrectamenteLaPosicionDeBombitaCuandoSeMueve()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);

            bombita.MoverAbajo();
            Casillero casillero = tablero.PosicionBombita;

            Assert.AreEqual(1, casillero.Fila);
            Assert.AreEqual(0, casillero.Columna);
        }
示例#15
0
        public void PruebaQueDaniarloNoLoDestruya()
        {
            Tablero tablero = new Tablero();
            Salida salida = new Salida();
            tablero.AgregarEntidadEnCasillero(salida, 5, 5);

            salida.DaniarConMolotov(new Molotov());
            Assert.IsFalse(salida.FueDestruido());

            salida.DaniarConProyectil(new Proyectil());
            Assert.IsFalse(salida.FueDestruido());

            salida.DaniarConToleTole(new ToleTole());
            Assert.IsFalse(salida.FueDestruido());
        }
示例#16
0
        public void PruebaQueUnaToleToleCuandoSeActivaLuegoDeQuePaseUnTiempo5EsteDestruida()
        {
            Tablero tablero = new Tablero();
            ToleTole bomba = new ToleTole();
            tablero.AgregarEntidadEnCasillero(bomba, 0, 0);

            bomba.ActivarBomba();

            bomba.CuandoPaseElTiempo(2);

            Assert.IsFalse(bomba.FueDestruido());

            bomba.CuandoPaseElTiempo(3);

            Assert.IsTrue(bomba.FueDestruido());
        }
示例#17
0
        public void PruebaQueUnProyectilCuandoSeActivaLuegoDeQuePaseUnTiempo0EsteDestruida()
        {
            Tablero tablero = new Tablero();
            Proyectil bomba = new Proyectil();
            tablero.AgregarEntidadEnCasillero(bomba, 0, 0);

            bomba.ActivarBomba();

            bomba.CuandoPaseElTiempo(0);

            Assert.IsTrue(bomba.FueDestruido());
        }
        public void QueBombitaNoSeaDaniadoCuandoSeLeLanzaUnProyectilYEstaAtrasDeUnBloque()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 1, 2);// Arranca en (0,0)
            LopezR enemigo = new LopezR();
            tablero.AgregarEntidadEnCasillero(enemigo, 1, 5);
            BloqueDeAcero bloque = new BloqueDeAcero();
            tablero.AgregarEntidadEnCasillero(bloque, 1, 3);

            Bomba bomba = enemigo.Bomba;

            enemigo.LanzarBomba();

            bomba.CuandoPaseElTiempo(5);

            Assert.AreEqual(3, bombita.Vidas);
        }
        public void IntentarMoverseAUnaPosicionInvalidaDejaACecilioEnElLugarQueEstaba()
        {
            Tablero tablero = new Tablero();
            Cecilio cecilio = new Cecilio();
            tablero.AgregarEntidadEnCasillero(cecilio, 0, 0);

            cecilio.MoverArriba();

            Assert.AreEqual(0, cecilio.Posicion.Columna);
            Assert.AreEqual(0, cecilio.Posicion.Fila);
        }
示例#20
0
        public void PruebaQueUnProyectilNoPuedaMoverseAUnCasilleroConUnaEntidad()
        {
            Tablero tablero = new Tablero();
            Proyectil proyectil = new Proyectil();
            BloqueDeAcero bloque = new BloqueDeAcero();
            tablero.AgregarEntidadEnCasillero(proyectil, 0, 0);
            tablero.AgregarEntidadEnCasillero(bloque, 0, 1);

            Assert.IsFalse(proyectil.PuedeMoverseA(proyectil.Posicion.ObtenerCasilleroAdyacenteEnLaDireccionYElTablero(Entidad.ESTE, tablero)));
            Assert.IsTrue(proyectil.PuedeMoverseA(proyectil.Posicion.ObtenerCasilleroAdyacenteEnLaDireccionYElTablero(Entidad.SUR, tablero)));
        }
示例#21
0
        public void IntentarMoverseAUnaPosicionInvalidaDejaALopezREnElLugarQueEstaba()
        {
            Tablero tablero = new Tablero();
            LopezR lopez = new LopezR();
            tablero.AgregarEntidadEnCasillero(lopez, 0, 0);

            lopez.MoverArriba();

            Assert.AreEqual(0, lopez.Posicion.Columna);
            Assert.AreEqual(0, lopez.Posicion.Fila);
        }
        public void QueLopezRAladoPuedaMoversePorArribaDeLosObstaculos()
        {
            Tablero tablero = new Tablero();
            LopezRAlado lopez = new LopezRAlado();
            tablero.AgregarEntidadEnCasillero(lopez, 0, 0);
            BloqueDeAcero bloque = new BloqueDeAcero();
            tablero.AgregarEntidadEnCasillero(bloque, 0, 1);

            lopez.MoverDerecha();
            lopez.MoverDerecha();

            Assert.AreEqual(2, lopez.Posicion.Columna);
        }
        public void QueCecilioLanceUnaBombaYSeDanieASiMismo()
        {
            Tablero tablero = new Tablero();
            LopezRAlado lopez = new LopezRAlado();
            tablero.AgregarEntidadEnCasillero(lopez, 0, 0);

            lopez.LanzarBomba();
            lopez.MoverAbajo();

            Bomba bomba = lopez.Bomba;

            bomba.CuandoPaseElTiempo(5);

            Assert.IsTrue(lopez.FueDestruido());
        }
        public void QueCecilioLanceUnaBombaYSeDanieASiMismo()
        {
            Tablero tablero = new Tablero();
            Cecilio cecilio = new Cecilio();
            tablero.AgregarEntidadEnCasillero(cecilio, 0, 0);

            cecilio.LanzarBomba();
            cecilio.MoverAbajo();

            Bomba bomba = cecilio.Bomba;

            bomba.CuandoPaseElTiempo(5);

            Assert.IsTrue(cecilio.FueDestruido());
        }
示例#25
0
        public void PruebaQueUnProyectilPuedaMoverseAUnCasilleroVacio()
        {
            Tablero tablero = new Tablero();
            Proyectil proyectil = new Proyectil();
            tablero.AgregarEntidadEnCasillero(proyectil, 0, 0);

            Assert.Throws<CasilleroFueraDeRangoException>(() => proyectil.PuedeMoverseA(proyectil.Posicion.ObtenerCasilleroAdyacenteEnLaDireccionYElTablero(Entidad.OESTE, tablero)));
            Assert.IsTrue(proyectil.PuedeMoverseA(proyectil.Posicion.ObtenerCasilleroAdyacenteEnLaDireccionYElTablero(Entidad.ESTE, tablero)));
        }
示例#26
0
        public void PruebaQueUnProyectilSoloPuedaMoverse4Casilleros()
        {
            Tablero tablero = new Tablero();
            Proyectil proyectil = new Proyectil();
            tablero.AgregarEntidadEnCasillero(proyectil, 0, 0);

            proyectil.MoverAbajo();
            proyectil.MoverAbajo();
            proyectil.MoverAbajo();
            proyectil.MoverAbajo();

            proyectil.CuandoPaseElTiempo(0);

            Assert.IsTrue(proyectil.FueDestruido());
        }
示例#27
0
        public void PruebaQueUnProyectilCuandoSeEncuentraConUnBloqueLoDania()
        {
            Tablero tablero = new Tablero();
            Proyectil proyectil = new Proyectil();
            BloqueDeLadrillos bloque = new BloqueDeLadrillos();
            tablero.AgregarEntidadEnCasillero(proyectil, 0, 0);
            tablero.AgregarEntidadEnCasillero(bloque, 0, 1);

            proyectil.MoverDerecha();
            proyectil.CuandoPaseElTiempo(0);

            Assert.IsTrue(bloque.FueDestruido());
        }
        public void BombitaIntentaLanzarDosBombasALaVez()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);// Arranca en (0,0)
            Bomba bomba = bombita.Bomba;

            bombita.LanzarBomba();
            bombita.MoverAbajo();
            bombita.MoverDerecha();

            bombita.LanzarBomba();
            bombita.MoverDerecha();

            bomba.CuandoPaseElTiempo(3);

            Assert.AreEqual(3, bombita.Vidas);
        }
        public void QueUnBloqueDeCementoSeaDestruidoYDejeUnArticulo()
        {
            Tablero tablero = new Tablero();
            BloqueDeCemento bloque = new BloqueDeCemento();
            tablero.AgregarEntidadEnCasillero(bloque, 0, 0);
            Timer timer = new Timer();
            bloque.Articulo = timer;

            Assert.IsNull(timer.Posicion);

            bloque.DaniarConToleTole(new ToleTole());//Lo destruyo

            Assert.AreEqual(tablero.ObtenerCasillero(0, 0).Entidad, timer);
            Assert.AreEqual(0, timer.Posicion.Fila);
            Assert.AreEqual(0, timer.Posicion.Columna);
        }
示例#30
0
        public void PruebaQueUnProyectilCuandoSeEncuentraUnPersonajeLoDania()
        {
            Tablero tablero = new Tablero();
            Proyectil proyectil = new Proyectil();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(proyectil, 0, 0);
            tablero.AgregarEntidadEnCasillero(bombita, 1, 0);

            proyectil.MoverAbajo();
            proyectil.CuandoPaseElTiempo(0);

            Assert.AreEqual(2, bombita.Vidas);
        }