From a7bd56dfc00fdafc960240f221dd063e51e425a5 Mon Sep 17 00:00:00 2001
From: Javier Calvo <javiercalvoporro@gmail.com>
Date: Sat, 21 Dec 2024 20:39:52 +0100
Subject: [PATCH] PackCamionBarcoTest realizado

---
 src/es/markse/PackCamionBarco.java      |   4 +-
 src/es/markse/PackCamionTren.java       |   3 +-
 uses/es/markse/PackCamionBarcoTest.java | 144 +++++++++++++++++++++++-
 3 files changed, 142 insertions(+), 9 deletions(-)

diff --git a/src/es/markse/PackCamionBarco.java b/src/es/markse/PackCamionBarco.java
index fa12cdc..e11c529 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 5847e23..ba14b1b 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 1810745..5075bf0 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);
 	}
 	
-	
 
 }
-- 
GitLab