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);
 	}
 	
-	
 
 }