public void DaniarSobreNaveDestruidaDeberiaArrojarExcepcion() { var posicion = new Posicion('e', 5); var mockNave = new MockNave(1, posicion, Direccion.Norte); mockNave.DaniarConDisparoConvencional(posicion); mockNave.DaniarConDisparoConvencional(posicion); }
public void DeberiaRevertirDireccionHorizontalAlIntentarAvanzarPasandoUltimaPosicion() { var mockNave = new MockNave(3, new Posicion('h', 4), Direccion.Este); mockNave.AvanzarPosicion(); Assert.AreEqual(Direccion.Oeste, mockNave.Direccion); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('g', 4)))); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('h', 4)))); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('i', 4)))); }
public void DeberiaDevolverPosicionesOcupadasDiagonalmente() { var posicionInicial = new Posicion('d', 5); var mockNave = new MockNave(3, posicionInicial, Direccion.SurEste); Assert.AreEqual(3, mockNave.PosicionesOcupadas.Count()); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('d', 5)))); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('e', 6)))); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('f', 7)))); }
public void DeberiaImpactarNave() { var minaConRetardo = new MinaConRetardo(new Posicion('a', 1)); var mockNave = new MockNave(); minaConRetardo.ImpactarNave(mockNave); Assert.IsTrue(mockNave.DaniarConMinaInvocado); Assert.IsFalse(mockNave.DaniarConDisparoConvencionalInvocado); Assert.AreEqual(1, mockNave.ArgumentoPosicionesImpactadasRecibidoEnDaniarConMina.Count()); Assert.IsTrue(mockNave.ArgumentoPosicionesImpactadasRecibidoEnDaniarConMina.ElementAt(0).Equals(new Posicion('a', 1))); }
public void MinaDeberiaDaniarNave() { var posicion = new Posicion('e', 5); var mockNave = new MockNave(3, posicion, Direccion.Norte); Assert.AreEqual(3, mockNave.PosicionesDePartesSanas.Count()); Assert.AreEqual(0, mockNave.PosicionesDePartesDestruidas.Count()); mockNave.DaniarConMina(new[] { posicion }); Assert.AreEqual(2, mockNave.PosicionesDePartesSanas.Count()); Assert.AreEqual(1, mockNave.PosicionesDePartesDestruidas.Count()); }
public void DeberiaDaniarNaveConDisparoConvencionalPasandoleLasPosiciones() { var posicion = new Posicion('a', 5); var disparoConvencional = new DisparoConvencional(posicion); var mockNave = new MockNave(); Assert.IsFalse(mockNave.DaniarConDisparoConvencionalInvocado); Assert.IsNull(mockNave.ArgumentoPosicionParaDaniarConDisparoConvencional); disparoConvencional.ImpactarNave(mockNave); Assert.IsTrue(mockNave.DaniarConDisparoConvencionalInvocado); Assert.AreEqual(posicion, mockNave.ArgumentoPosicionParaDaniarConDisparoConvencional); }
public void DisparoDeberiaDaniarNave() { var posicion = new Posicion('e', 5); var mockNave = new MockNave(3, posicion, Direccion.Norte); Assert.AreEqual(3, mockNave.PosicionesDePartesSanas.Count()); Assert.AreEqual(0, mockNave.PosicionesDePartesDestruidas.Count()); mockNave.DaniarConDisparoConvencional(posicion); Assert.AreEqual(2, mockNave.PosicionesDePartesSanas.Count()); Assert.AreEqual(1, mockNave.PosicionesDePartesDestruidas.Count()); Assert.IsTrue(mockNave.PosicionesDePartesDestruidas.ElementAt(0).Equals(posicion)); }
public void DeberiaAvanzarUnaPosicionEnDiagonalHaciaElFrente() { var mockNave = new MockNave(3, new Posicion('d', 1), Direccion.SurEste); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('d', 1)))); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('e', 2)))); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('f', 3)))); mockNave.AvanzarPosicion(); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('e', 2)))); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('f', 3)))); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('g', 4)))); }
public void DeberiaRevertirDireccionDiagonalAlIntentarAvanzarPasandoUltimaPosicion() { var mockNave = new MockNave(3, new Posicion('c', 3), Direccion.NorEste); Assert.AreEqual(Direccion.NorEste, mockNave.Direccion); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('e', 1)))); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('d', 2)))); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('c', 3)))); mockNave.AvanzarPosicion(); Assert.AreEqual(Direccion.SurOeste, mockNave.Direccion); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('b', 4)))); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('c', 3)))); Assert.IsTrue(mockNave.PosicionesOcupadas.Any(po => po.Equals(new Posicion('d', 2)))); }
public void NoDeberiaDevolverPartesDestruidasDeLasPuntasAlDevolverPosicionesDePartesSanas() { var posicionInicial = new Posicion('d', 5); var mockNave = new MockNave(3, posicionInicial, Direccion.Este); mockNave.DaniarConDisparoConvencional(new Posicion('d', 5)); Assert.AreEqual(2, mockNave.PosicionesDePartesSanas.Count()); Assert.IsTrue(mockNave.PosicionesDePartesSanas.Any(po => po.Equals(new Posicion('e', 5)))); Assert.IsTrue(mockNave.PosicionesDePartesSanas.Any(po => po.Equals(new Posicion('f', 5)))); mockNave.DaniarConDisparoConvencional(new Posicion('f', 5)); Assert.AreEqual(1, mockNave.PosicionesDePartesSanas.Count()); Assert.IsTrue(mockNave.PosicionesDePartesSanas.Any(po => po.Equals(new Posicion('e', 5)))); }
public void DeberiaSetearDireccionAlConstruir() { var mockNave = new MockNave(1, new Posicion('e', 5), Direccion.Sur); Assert.AreEqual(Direccion.Sur, mockNave.Direccion); }
public void DeberiaSetearTamanioAlConstruir() { var mockNave = new MockNave(4, new Posicion('e', 5), Direccion.Norte); Assert.AreEqual(4, mockNave.Tamanio); }