diff --git a/src/es/markse/PackCamionBarco.java b/src/es/markse/PackCamionBarco.java index fa12cdc6139985b15da660ede634b0c0bcd4b765..e11c5294a50a42a1e84903cd49de7bf2fa7c7044 100644 --- a/src/es/markse/PackCamionBarco.java +++ b/src/es/markse/PackCamionBarco.java @@ -35,7 +35,7 @@ public class PackCamionBarco extends Combinado { throw new IllegalArgumentException("Los trayectos en camion estan vacios"); //Comprobamos si las clases son solo de tipo Camion o Tren - if (trayectosCorrectos(trayectosSimples)) + if (!trayectosCorrectos(trayectosSimples)) throw new IllegalArgumentException("Las clases agregadas al ArrayList son invalidas"); //Comprobar si hay un trayecto de barco y de camion al menos (Obligatorio por nuestra parte) @@ -49,8 +49,8 @@ public class PackCamionBarco extends Combinado { throw new IllegalArgumentException("El orden de los trayectos no es correcto. " + "Comprueba si el destino es el mismo que el origen del siguiente trayecto"); - compararTrayectosDeLaLista(trayectosSimples); this.trayectosSimples = trayectosSimples; + compararTrayectosDeLaLista(trayectosSimples); } diff --git a/src/es/markse/PackCamionTren.java b/src/es/markse/PackCamionTren.java index 5847e23df40cc88a781eb3aabcafafe6d39b4930..ba14b1befc5bc7abd64b7d6e9dd0dec27e7941ff 100644 --- a/src/es/markse/PackCamionTren.java +++ b/src/es/markse/PackCamionTren.java @@ -53,8 +53,9 @@ public class PackCamionTren extends Combinado { throw new IllegalArgumentException("El orden de los trayectos no es correcto. " + "Comprueba si el destino es el mismo que el origen del siguiente trayecto"); - compararTrayectosDeLaLista(trayectosSimples); this.trayectosSimples = trayectosSimples; + compararTrayectosDeLaLista(trayectosSimples); + } /** diff --git a/uses/es/markse/PackCamionBarcoTest.java b/uses/es/markse/PackCamionBarcoTest.java index 18107450e0ad42079442728e7661043563365f92..5075bf0a1f664298d7470a591c66997373921bd5 100644 --- a/uses/es/markse/PackCamionBarcoTest.java +++ b/uses/es/markse/PackCamionBarcoTest.java @@ -19,23 +19,155 @@ public class PackCamionBarcoTest { @Test public void testPackCamionBarco() { - Muelle muelleOrigen = new Muelle("01", new GPSCoordinate(10.0, 15.0), estado.OPERATIVO, 10, 3, true, true); - Muelle muelleDestino = new Muelle("02", new GPSCoordinate(15.0, -15.0), estado.OPERATIVO, 10, 3, true, true); + Muelle muelleOrigen = new Muelle("01", new GPSCoordinate(10.0, 15.0), estado.OPERATIVO, 10, 3, true, false); + Muelle muelleDestino = new Muelle("02", new GPSCoordinate(15.0, -15.0), estado.OPERATIVO, 10, 3, true, false); Puerto puertoOrigen = new Puerto("ES", "BAR"); Puerto puertoDestino = new Puerto("ES", "VAL"); puertoOrigen.anyadirMuelle(muelleOrigen); puertoDestino.anyadirMuelle(muelleDestino); Fecha fechaInicioTrayecto = new Fecha(20, 10, 2015); Fecha fechaFinTrayecto = new Fecha(30, 10, 2015); - ArrayList<Simple> trayectosSimples = new ArrayLis - PackCamionBarco pcb = new PackCamionBarco(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto, trayectosSimples) + ArrayList<Simple> trayectosSimples = new ArrayList<>(); + Muelle muelleConexion = new Muelle("03", new GPSCoordinate(10.0, -15.0), estado.OPERATIVO, 10, 3, true, false); + Puerto puertoConexion = new Puerto("IT", "NAP"); + puertoConexion.anyadirMuelle(muelleConexion); + Fecha fechaConexion = new Fecha(25,10,2015); + TCamion tc = new TCamion(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleConexion, puertoConexion, fechaConexion); + TBarco tb = new TBarco(muelleConexion,puertoConexion, fechaConexion, muelleDestino, puertoDestino, fechaFinTrayecto); + trayectosSimples.add(tc); + trayectosSimples.add(tb); + PackCamionBarco pcb = new PackCamionBarco(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto, trayectosSimples); + assertEquals(pcb.getMuelleOrigen().getIdentificador(), "01"); + assertEquals(pcb.getPuertoDestino().identificadorPuerto(), "ES-VAL"); + } + + @Test (expected = IllegalArgumentException.class) + public void testPackCamionBarcoTrayectosNulos() { + Muelle muelleOrigen = new Muelle("01", new GPSCoordinate(10.0, 15.0), estado.OPERATIVO, 10, 3, true, false); + Muelle muelleDestino = new Muelle("02", new GPSCoordinate(15.0, -15.0), estado.OPERATIVO, 10, 3, true, false); + Puerto puertoOrigen = new Puerto("ES", "BAR"); + Puerto puertoDestino = new Puerto("ES", "VAL"); + puertoOrigen.anyadirMuelle(muelleOrigen); + puertoDestino.anyadirMuelle(muelleDestino); + Fecha fechaInicioTrayecto = new Fecha(20, 10, 2015); + Fecha fechaFinTrayecto = new Fecha(30, 10, 2015); + ArrayList<Simple> trayectosSimples = new ArrayList<>(); + new PackCamionBarco(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto, trayectosSimples); + } + + + @Test (expected = IllegalArgumentException.class) + public void testPackCamionBarcoTrayectosIncorrectos() { + Muelle muelleOrigen = new Muelle("01", new GPSCoordinate(10.0, 15.0), estado.OPERATIVO, 10, 3, true, false); + Muelle muelleDestino = new Muelle("02", new GPSCoordinate(15.0, -15.0), estado.OPERATIVO, 10, 3, true, false); + Puerto puertoOrigen = new Puerto("ES", "BAR"); + Puerto puertoDestino = new Puerto("ES", "VAL"); + puertoOrigen.anyadirMuelle(muelleOrigen); + puertoDestino.anyadirMuelle(muelleDestino); + Fecha fechaInicioTrayecto = new Fecha(20, 10, 2015); + Fecha fechaFinTrayecto = new Fecha(30, 10, 2015); + ArrayList<Simple> trayectosSimples = new ArrayList<>(); + Muelle muelleConexion = new Muelle("01", new GPSCoordinate(10.0, -15.0), estado.OPERATIVO, 10, 3, true, false); + Puerto puertoConexion = new Puerto("IT", "NAP"); + puertoConexion.anyadirMuelle(muelleConexion); + Fecha fechaConexion = new Fecha(25,10,2015); + TCamion tc = new TCamion(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleConexion, puertoConexion, fechaConexion); + TTren tb = new TTren(muelleConexion,puertoConexion, fechaConexion, muelleDestino, puertoDestino, fechaFinTrayecto); + trayectosSimples.add(tc); + trayectosSimples.add(tb); + new PackCamionBarco(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto, trayectosSimples); + } + + + + @Test (expected = IllegalArgumentException.class) + public void testPackCamionBarcosSinTrayectosCamion() { + Muelle muelleOrigen = new Muelle("01", new GPSCoordinate(10.0, 15.0), estado.OPERATIVO, 10, 3, true, false); + Muelle muelleDestino = new Muelle("02", new GPSCoordinate(15.0, -15.0), estado.OPERATIVO, 10, 3, true, false); + Puerto puertoOrigen = new Puerto("ES", "BAR"); + Puerto puertoDestino = new Puerto("ES", "VAL"); + puertoOrigen.anyadirMuelle(muelleOrigen); + puertoDestino.anyadirMuelle(muelleDestino); + Fecha fechaInicioTrayecto = new Fecha(20, 10, 2015); + Fecha fechaFinTrayecto = new Fecha(30, 10, 2015); + ArrayList<Simple> trayectosSimples = new ArrayList<>(); + Muelle muelleConexion = new Muelle("01", new GPSCoordinate(10.0, -15.0), estado.OPERATIVO, 10, 3, true, false); + Puerto puertoConexion = new Puerto("IT", "NAP"); + puertoConexion.anyadirMuelle(muelleConexion); + Fecha fechaConexion = new Fecha(25,10,2015); + TBarco tc = new TBarco(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleConexion, puertoConexion, fechaConexion); + TBarco tb = new TBarco(muelleConexion,puertoConexion, fechaConexion, muelleDestino, puertoDestino, fechaFinTrayecto); + trayectosSimples.add(tc); + trayectosSimples.add(tb); + new PackCamionBarco(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto, trayectosSimples); + } + + @Test (expected = IllegalArgumentException.class) + public void testPackCamionBarcoSinTrayectosBarco() { + Muelle muelleOrigen = new Muelle("01", new GPSCoordinate(10.0, 15.0), estado.OPERATIVO, 10, 3, true, false); + Muelle muelleDestino = new Muelle("02", new GPSCoordinate(15.0, -15.0), estado.OPERATIVO, 10, 3, true, false); + Puerto puertoOrigen = new Puerto("ES", "BAR"); + Puerto puertoDestino = new Puerto("ES", "VAL"); + puertoOrigen.anyadirMuelle(muelleOrigen); + puertoDestino.anyadirMuelle(muelleDestino); + Fecha fechaInicioTrayecto = new Fecha(20, 10, 2015); + Fecha fechaFinTrayecto = new Fecha(30, 10, 2015); + ArrayList<Simple> trayectosSimples = new ArrayList<>(); + Muelle muelleConexion = new Muelle("01", new GPSCoordinate(10.0, -15.0), estado.OPERATIVO, 10, 3, true, false); + Puerto puertoConexion = new Puerto("IT", "NAP"); + puertoConexion.anyadirMuelle(muelleConexion); + Fecha fechaConexion = new Fecha(25,10,2015); + TCamion tc = new TCamion(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleConexion, puertoConexion, fechaConexion); + TCamion tb = new TCamion(muelleConexion,puertoConexion, fechaConexion, muelleDestino, puertoDestino, fechaFinTrayecto); + trayectosSimples.add(tc); + trayectosSimples.add(tb); + new PackCamionBarco(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto, trayectosSimples); + } + + @Test (expected = IllegalArgumentException.class) + public void testPackCamionBarcoOrdenTrayectosIncorrecto() { + Muelle muelleOrigen = new Muelle("01", new GPSCoordinate(10.0, 15.0), estado.OPERATIVO, 10, 3, true, false); + Muelle muelleDestino = new Muelle("02", new GPSCoordinate(15.0, -15.0), estado.OPERATIVO, 10, 3, true, false); + Puerto puertoOrigen = new Puerto("ES", "BAR"); + Puerto puertoDestino = new Puerto("ES", "VAL"); + puertoOrigen.anyadirMuelle(muelleOrigen); + puertoDestino.anyadirMuelle(muelleDestino); + Fecha fechaInicioTrayecto = new Fecha(20, 10, 2015); + Fecha fechaFinTrayecto = new Fecha(30, 10, 2015); + ArrayList<Simple> trayectosSimples = new ArrayList<>(); + Muelle muelleConexion = new Muelle("01", new GPSCoordinate(10.0, -15.0), estado.OPERATIVO, 10, 3, true, false); + Puerto puertoConexion = new Puerto("IT", "NAP"); + puertoConexion.anyadirMuelle(muelleConexion); + Fecha fechaConexion = new Fecha(25,10,2015); + TCamion tc = new TCamion(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleConexion, puertoConexion, fechaConexion); + TBarco tb = new TBarco(muelleConexion,puertoConexion, fechaConexion, muelleDestino, puertoDestino, fechaFinTrayecto); + trayectosSimples.add(tb); + trayectosSimples.add(tc); + new PackCamionBarco(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto, trayectosSimples); } @Test public void testCosteTrayecto() { - fail("Not yet implemented"); + Muelle muelleOrigen = new Muelle("01", new GPSCoordinate(10.0, 15.0), estado.OPERATIVO, 10, 3, true, false); + Muelle muelleDestino = new Muelle("02", new GPSCoordinate(15.0, -15.0), estado.OPERATIVO, 10, 3, true, false); + Puerto puertoOrigen = new Puerto("ES", "BAR"); + Puerto puertoDestino = new Puerto("ES", "VAL"); + puertoOrigen.anyadirMuelle(muelleOrigen); + puertoDestino.anyadirMuelle(muelleDestino); + Fecha fechaInicioTrayecto = new Fecha(20, 10, 2015); + Fecha fechaFinTrayecto = new Fecha(30, 10, 2015); + ArrayList<Simple> trayectosSimples = new ArrayList<>(); + Muelle muelleConexion = new Muelle("03", new GPSCoordinate(10.0, -15.0), estado.OPERATIVO, 10, 3, true, false); + Puerto puertoConexion = new Puerto("IT", "NAP"); + puertoConexion.anyadirMuelle(muelleConexion); + Fecha fechaConexion = new Fecha(25,10,2015); + TCamion tc = new TCamion(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleConexion, puertoConexion, fechaConexion); + TBarco tb = new TBarco(muelleConexion,puertoConexion, fechaConexion, muelleDestino, puertoDestino, fechaFinTrayecto); + trayectosSimples.add(tc); + trayectosSimples.add(tb); + PackCamionBarco pcb = new PackCamionBarco(muelleOrigen, puertoOrigen, fechaInicioTrayecto, muelleDestino, puertoDestino, fechaFinTrayecto, trayectosSimples); + assertEquals(pcb.costeTrayecto(), 48002.33, 0.01f); } - }