Created
November 1, 2017 15:33
-
-
Save tiagox/c396686919b612044d2ee5d6a6910379 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Avion { | |
private int filas; | |
private int columnas; | |
private boolean[][] asientos; | |
public Avion(int filas, int columnas) { | |
this.filas = filas; | |
this.columnas = columnas; | |
asientos = new boolean[filas][columnas]; | |
} | |
public void reservarAsiento(int fila, int columna) { | |
if (fila > 0 && fila <= filas && columna > 0 && columna <= columnas) { | |
if (asientos[fila - 1][columna - 1] == false) { | |
asientos[fila - 1][columna - 1] = true; | |
} else { | |
throw new Error("Asiento reservado."); | |
} | |
} else { | |
throw new Error("No existe asiento."); | |
} | |
} | |
public boolean consultarDisponibilidadAsiento(int fila, int columna) { | |
if (fila > 0 && fila <= filas && columna > 0 && columna <= columnas) { | |
return asientos[fila - 1][columna - 1]; | |
} else { | |
throw new Error("No existe asiento."); | |
} | |
} | |
public boolean estaCompleto() { | |
for (int i = 0; i < asientos.length; i++) { | |
for (int j = 0; j < asientos[i].length; j++) { | |
if (asientos[i][j] == false) { | |
return false; | |
} | |
} | |
} | |
return true; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import org.junit.Assert; | |
import org.junit.Test; | |
public class AvionTests { | |
@Test | |
public void testHacerUnaReserva() { | |
Avion avion = new Avion(40, 5); | |
avion.reservarAsiento(3, 1); | |
Assert.assertEquals(true, avion.consultarDisponibilidadAsiento(3, 1)); | |
} | |
@Test | |
public void testHacerVariasReservasValidas() { | |
Avion avion = new Avion(40, 5); | |
avion.reservarAsiento(1, 1); | |
Assert.assertTrue(avion.consultarDisponibilidadAsiento(1, 1)); | |
avion.reservarAsiento(40, 5); | |
Assert.assertTrue(avion.consultarDisponibilidadAsiento(40, 5)); | |
avion.reservarAsiento(40, 1); | |
Assert.assertTrue(avion.consultarDisponibilidadAsiento(40, 1)); | |
avion.reservarAsiento(1, 5); | |
Assert.assertTrue(avion.consultarDisponibilidadAsiento(1, 5)); | |
} | |
@Test(expected = Error.class) | |
public void testHacerUnaReservaSobreAsientoReservado() { | |
Avion avion = new Avion(40, 5); | |
avion.reservarAsiento(3, 1); | |
avion.reservarAsiento(3, 1); | |
} | |
@Test(expected = Error.class) | |
public void testHacerUnaReservaFueraDeRango() { | |
Avion avion = new Avion(40, 5); | |
avion.reservarAsiento(3, 6); | |
} | |
@Test | |
public void testVerSiEstaCompleto() { | |
Avion avion = new Avion(40, 5); | |
for (int fila = 1; fila <= 40; fila++) { | |
for (int columna = 1; columna <= 5; columna++) { | |
avion.reservarAsiento(fila, columna); | |
} | |
} | |
Assert.assertTrue(avion.estaCompleto()); | |
} | |
@Test | |
public void testVerSiNoEstaCompleto() { | |
Avion avion = new Avion(40, 5); | |
Assert.assertFalse(avion.estaCompleto()); | |
} | |
@Test | |
public void testVerSiNoEstaCompletoPeroSoloPorUnAsiento() { | |
Avion avion = new Avion(40, 5); | |
for (int fila = 1; fila <= 40; fila++) { | |
for (int columna = 1; columna <= 5; columna++) { | |
if (fila != 38 && columna != 3) { | |
avion.reservarAsiento(fila, columna); | |
} | |
} | |
} | |
Assert.assertFalse(avion.estaCompleto()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment