From 5fae23fc2c04853a0531f0fbea1625fb15a3cd67 Mon Sep 17 00:00:00 2001
From: Javier Calvo <javiercalvoporro@gmail.com>
Date: Thu, 5 Dec 2024 17:27:07 +0100
Subject: [PATCH] Cambiando los test de Muelle

---
 .classpath                      |  6 ++--
 src/es/markse/Contenedor.java   |  1 -
 src/es/markse/Muelle.java       |  3 +-
 uses/es/markse/ISO6346Test.java | 61 +++++++++++++++++++++++++++++++++
 uses/es/markse/MuelleTest.java  | 57 +++++++++++++++---------------
 uses/es/markse/PuertoTest.java  | 51 ++++++++++++++-------------
 6 files changed, 119 insertions(+), 60 deletions(-)
 create mode 100644 uses/es/markse/ISO6346Test.java

diff --git a/.classpath b/.classpath
index 7a1eac0..657b730 100644
--- a/.classpath
+++ b/.classpath
@@ -2,12 +2,12 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="uses"/>
-	<classpathentry kind="lib" path="clases"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
+	<classpathentry exported="true" kind="lib" path="clases"/>
+	<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
 		<attributes>
 			<attribute name="module" value="true"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+	<classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/src/es/markse/Contenedor.java b/src/es/markse/Contenedor.java
index 107c9b3..0ca7ea1 100644
--- a/src/es/markse/Contenedor.java
+++ b/src/es/markse/Contenedor.java
@@ -2,7 +2,6 @@
  * Copyright UVa 2024/2025
  */
 package es.markse;
-
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/src/es/markse/Muelle.java b/src/es/markse/Muelle.java
index 9b65ed1..b89a44a 100644
--- a/src/es/markse/Muelle.java
+++ b/src/es/markse/Muelle.java
@@ -49,7 +49,8 @@ public class Muelle {
 		 * @return true si la plaza esta llena o si no lo esta
 		 */
 		public boolean plazaLlena() {
-			return (this.contenedores.size() == this.altura || this.ultimoContenedor().tieneTecho()) ? true : false;
+			return (this.contenedores.size() == this.altura || 
+					(!this.contenedores.isEmpty() && this.ultimoContenedor().tieneTecho())) ? true : false;
 		}
 		
 		/**
diff --git a/uses/es/markse/ISO6346Test.java b/uses/es/markse/ISO6346Test.java
new file mode 100644
index 0000000..db0ee90
--- /dev/null
+++ b/uses/es/markse/ISO6346Test.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright Universidad de Valladolid 2024/2025
+ */
+package es.markse;
+
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+/**
+ * Test para la clase ISO6346
+ * @author javcalv
+ * @author victorm
+ */
+public class ISO6346Test {
+
+	@Test
+	public final void testISO6346() {
+		ISO6346 codigo = new ISO6346("RTX", 'J', 893);
+		assertEquals("RTX", codigo.codigoDuenyo());
+		assertEquals('J', codigo.equipamiento());
+		assertEquals(893, codigo.numeroSerie());
+		assertEquals("RTXJ0008931", codigo.codigoContenedor());
+	}
+	
+	@Test
+	public final void testISO6346EquipamientoZ() {
+		ISO6346 codigo = new ISO6346("RTX", 'Z', 893);
+		assertEquals('Z', codigo.equipamiento());
+	}
+	
+	@Test
+	public final void testISO6346EquipamientoU() {
+		ISO6346 codigo = new ISO6346("RTX", 'U', 893);
+		assertEquals('U', codigo.equipamiento());
+	}
+	
+	@Test (expected = IllegalArgumentException.class)
+	public final void testISO6346CodigoNulo() {
+		new ISO6346(null, 'J', 893);
+	}
+	
+	@Test (expected = IllegalArgumentException.class)
+	public final void testISO6346CodigoInvalido() {
+		new ISO6346("r4", 'J', 893);
+	}
+	
+	@Test (expected = IllegalArgumentException.class)
+	public final void testISO6346EquipamientoInvalido() {
+		new ISO6346("r4", '4', 893);
+	}
+	
+	@Test (expected = IllegalArgumentException.class)
+	public final void testISO6346NumeroSerieMenor() {
+		new ISO6346("r4", '4', -405);
+	}
+	
+	@Test (expected = IllegalArgumentException.class)
+	public final void testISO6346NumeroSerieMayor() {
+		new ISO6346("r4", '4', 56789012);
+	}
+}
diff --git a/uses/es/markse/MuelleTest.java b/uses/es/markse/MuelleTest.java
index d8ef274..deb5210 100644
--- a/uses/es/markse/MuelleTest.java
+++ b/uses/es/markse/MuelleTest.java
@@ -5,7 +5,8 @@
 package es.markse;
 import static org.junit.Assert.*;
 import org.junit.Test;
-
+import es.markse.Muelle.estado;
+import es.markse.Contenedor.*;
 import es.uva.inf.poo.maps.GPSCoordinate;
 
 /**
@@ -21,7 +22,7 @@ public class MuelleTest {
 	@Test
 	public void testMuelle() {
 		GPSCoordinate cord = new GPSCoordinate(5d, 5d);
-		Muelle m = new Muelle("01", cord, true, 2,2);
+		Muelle m = new Muelle("01", cord, estado.OPERATIVO, 2, 2);
 		assertEquals("01", m.getIdentificador());
 		assertEquals(cord, m.getGPSCoordinate());
 		assertTrue(m.estaOperativo());
@@ -31,99 +32,97 @@ public class MuelleTest {
 	@Test(expected = IllegalArgumentException.class)
 	public void testMuelleIdentificadorVacio() {
 		GPSCoordinate cord = new GPSCoordinate(5d, 5d);
-		new Muelle(null, cord, true, 2,2);
+		new Muelle(null, cord, estado.OPERATIVO, 2, 2);
 	}
 	
 	@Test(expected = IllegalArgumentException.class)
 	public void testMuelleGPSVacio() {
-		new Muelle("04", null, true, 2,2);
+		new Muelle("01", null, estado.OPERATIVO, 2, 2);
 	}
 	
 	@Test(expected = IllegalArgumentException.class)
 	public void testMuelleIdentificadorInvalido() {
 		GPSCoordinate cord = new GPSCoordinate(5d, 5d);
-		new Muelle("r3", cord, true, 2,2);
+		new Muelle("r3", cord, estado.OPERATIVO, 2, 2);
 	}
 	
 	@Test(expected = IllegalArgumentException.class)
-	public void testMuelleIdentificadorInvalidoTamanyo() {
+	public void testMuelleIdentificadorPatronInvalido() {
 		GPSCoordinate cord = new GPSCoordinate(5d, 5d);
-		new Muelle("r432432", cord, true, 2,2);
+		new Muelle("r432432", cord, estado.OPERATIVO, 2, 2);
 	}
 	
 	@Test(expected = IllegalArgumentException.class)
 	public void testMuellePlazasInvalida() {
 		GPSCoordinate cord = new GPSCoordinate(5d, 5d);
-		new Muelle("12", cord, true, -3,2);
+		new Muelle("01", cord, estado.OPERATIVO, -2, 2);
 	}
 	
 	@Test(expected = IllegalArgumentException.class)
 	public void testMuelleAlturaInvalida() {
 		GPSCoordinate cord = new GPSCoordinate(5d, 5d);
-		new Muelle("12", cord, true, 1,-2);
+		new Muelle("01", cord, estado.OPERATIVO, 2, -2);
 	}
 	
-	
 	@Test
 	public void testGetIdentificador() {
 		GPSCoordinate cord = new GPSCoordinate(5d, 5d);
-		Muelle m = new Muelle("01", cord, true, 2,2);
+		Muelle m = new Muelle("01", cord, estado.OPERATIVO, 2, 2);
 		assertEquals("01", m.getIdentificador());
 	}
 
-
 	@Test
 	public void testEstaOperativo() {
 		GPSCoordinate cord = new GPSCoordinate(5d, 5d);
-		Muelle m1 = new Muelle("01", cord, true, 2,2);
-		Muelle m2 = new Muelle("02", cord, false, 2,2);
+		Muelle m1 = new Muelle("01", cord, estado.OPERATIVO, 2, 2);
+		Muelle m2 = new Muelle("02", cord, estado.FUERA_DE_SERVICIO, 2, 2);
 		assertTrue(m1.estaOperativo());
 		assertFalse(m2.estaOperativo());
 	}
 	
-	
+
 	@Test
 	public void testGetGPSCoordinate() {
 		GPSCoordinate cord = new GPSCoordinate(5d, 5d);
-		Muelle m = new Muelle("01", cord, true, 2,2);
+		Muelle m = new Muelle("01", cord, estado.OPERATIVO, 2, 2);
 		assertEquals(cord, m.getGPSCoordinate());
 	}
 	
-	
 	@Test
 	public void testNumeroDePlazasTotales() {
 		GPSCoordinate cord = new GPSCoordinate(5d, 5d);
-		Muelle m = new Muelle("01", cord, true, 2,2);
+		Muelle m = new Muelle("01", cord, estado.OPERATIVO, 2, 2);
 		assertEquals(2,m.numeroDePlazasTotales());
 	}
 	
-
 	@Test
 	public void testPlazasVacias() {
 		GPSCoordinate cord = new GPSCoordinate(5d, 5d);
-		Muelle m = new Muelle("01", cord, true, 2,1);
+		Muelle m = new Muelle("01", cord, estado.OPERATIVO, 2, 1);
 		assertEquals(2, m.plazasVacias());
-		Contenedor c = new Contenedor("ZRE", 'J', "056731", 100, 400, 500, false, true);
-		Contenedor c2 = new Contenedor("TRR", 'J', "056731", 100, 400, 500, false, true);
-		m.colocarContenedorEnPlaza(c, 0);
+		ISO6346 i1 = new ISO6346("ZRE", 'J', 56731);
+		ISO6346 i2 = new ISO6346("RTZ", 'Z', 569026);
+		Contenedor c1 = new Contenedor(i1, 100, 400, 500, estados.REGOGIDA, pesos.KILOS, volumenes.METROS, true);
+		/*Contenedor c2 = new Contenedor(i2, 100, 400, 500, estados.REGOGIDA, pesos.KILOS, volumenes.METROS, true);
+		m.colocarContenedorEnPlaza(c1, 0);
 		assertEquals(1, m.plazasVacias());
 		m.colocarContenedorEnPlaza(c2, 1);
 		assertEquals(0, m.plazasVacias());
 		m.sacarContenedorDePlaza(c2);
-		assertEquals(1, m.plazasVacias());
+		assertEquals(1, m.plazasVacias()); */
 	}
 	
 	@Test
 	public void testPlazasLlenas() {
-		Puerto p = new Puerto("ES","BAR");
 		GPSCoordinate cord = new GPSCoordinate(5d, 5d);
-		Muelle m = new Muelle("01", cord, true, 1,2);
-		p.anyadirMuelle(m);
+		Muelle m = new Muelle("01", cord, estado.OPERATIVO, 1, 2);
+		System.out.println(m.plazasLlenas());
 		assertEquals(0, m.plazasLlenas());
-		Contenedor c = new Contenedor("ZRE", 'J', "056731", 100, 400, 500, false, true);
+		ISO6346 i = new ISO6346("ZRE", 'J' , 56731);
+		Contenedor c = new Contenedor(i, 100, 400, 500, estados.REGOGIDA, pesos.KILOS, volumenes.METROS, true);
 		m.colocarContenedorEnPlaza(c, 0);
 		assertEquals(0, m.plazasLlenas());
-		m.alternarTechoContenedor(c);
+		c.alternarTecho();
 		assertEquals(1, m.plazasLlenas());	
 	}
 	
diff --git a/uses/es/markse/PuertoTest.java b/uses/es/markse/PuertoTest.java
index 00123ec..3c8a564 100644
--- a/uses/es/markse/PuertoTest.java
+++ b/uses/es/markse/PuertoTest.java
@@ -1,14 +1,14 @@
 /**
  * Copyright Universidad de Valladolid 2024/2025
  */
+
 package es.markse;
 import static org.junit.Assert.*;
 import org.junit.Test;
-
 import es.markse.Muelle.estado;
+import es.markse.Contenedor.*;
 import es.uva.inf.poo.maps.GPSCoordinate;
 
-
 /**
  * Test realizados para la clase Puerto
  * @author javcalv
@@ -58,7 +58,7 @@ public class PuertoTest {
 	public void testAnyadirMuelle() {
 		Puerto p = new Puerto("ES","BAR");
 		GPSCoordinate cord = new GPSCoordinate(5d, 10d);
-		Muelle m = new Muelle("03", cord, Muelle.estado.OPERATIVO, 40, 5);
+		Muelle m = new Muelle("03", cord, estado.OPERATIVO, 40, 5);
 		assertTrue(p.anyadirMuelle(m));
 	}
 	
@@ -74,8 +74,8 @@ public class PuertoTest {
 		Puerto p = new Puerto("ES","BAR");
 		GPSCoordinate cord1 = new GPSCoordinate(5d, 10d);
 		GPSCoordinate cord2 = new GPSCoordinate(20d, -10d);
-		Muelle m = new Muelle("03", cord1, Muelle.estado.OPERATIVO, 40, 5);
-		Muelle mismoID = new Muelle("03", cord2, Muelle.estado.OPERATIVO, 40, 5);
+		Muelle m = new Muelle("03", cord1, estado.OPERATIVO, 40, 5);
+		Muelle mismoID = new Muelle("03", cord2, estado.OPERATIVO, 40, 5);
 		p.anyadirMuelle(m);
 		assertFalse(p.anyadirMuelle(mismoID));	
 	}
@@ -84,8 +84,8 @@ public class PuertoTest {
 	public void testAnyadirMuelleCoordenadaRepetida() {
 		Puerto p = new Puerto("ES","BAR");
 		GPSCoordinate cord = new GPSCoordinate(5d, 10d);
-		Muelle m = new Muelle("03", cord, Muelle.estado.OPERATIVO, 40, 5);
-		Muelle mismaCoordenada = new Muelle("05", cord, Muelle.estado.OPERATIVO, 40, 5);
+		Muelle m = new Muelle("03", cord, estado.OPERATIVO, 40, 5);
+		Muelle mismaCoordenada = new Muelle("05", cord, estado.OPERATIVO, 40, 5);
 		p.anyadirMuelle(m);
 		assertFalse(p.anyadirMuelle(mismaCoordenada));	
 	}
@@ -94,7 +94,7 @@ public class PuertoTest {
 	public void testEliminarMuelle() {
 		Puerto p = new Puerto("ES","BAR");
 		GPSCoordinate cord = new GPSCoordinate(5d, 10d);
-		Muelle m = new Muelle("03", cord, Muelle.estado.OPERATIVO, 40, 5);
+		Muelle m = new Muelle("03", cord, estado.OPERATIVO, 40, 5);
 		p.anyadirMuelle(m);
 		assertTrue(p.eliminarMuelle("03"));
 	}
@@ -103,7 +103,7 @@ public class PuertoTest {
 	public void testEliminarMuelleNulo() {
 		Puerto p = new Puerto("ES","BAR");
 		GPSCoordinate cord = new GPSCoordinate(5d, 10d);
-		Muelle m = new Muelle("03", cord, Muelle.estado.OPERATIVO, 40, 5);
+		Muelle m = new Muelle("03", cord, estado.OPERATIVO, 40, 5);
 		p.anyadirMuelle(m);
 		p.eliminarMuelle(null);
 	}
@@ -112,7 +112,7 @@ public class PuertoTest {
 	public void testEliminarMuelleVacio() {
 		Puerto p = new Puerto("ES","BAR");
 		GPSCoordinate cord = new GPSCoordinate(5d, 10d);
-		Muelle m = new Muelle("03", cord, Muelle.estado.OPERATIVO, 40, 5);
+		Muelle m = new Muelle("03", cord, estado.OPERATIVO, 40, 5);
 		p.anyadirMuelle(m);
 		p.eliminarMuelle("");
 	}
@@ -128,16 +128,16 @@ public class PuertoTest {
 		Puerto p = new Puerto("ES","BAR");
 		GPSCoordinate cord1 = new GPSCoordinate(5d, 10d);
 		GPSCoordinate cord2 = new GPSCoordinate(20d, -10d);
-		Muelle m1 = new Muelle("01", cord1, Muelle.estado.OPERATIVO, 1, 1);
+		Muelle m1 = new Muelle("01", cord1, estado.OPERATIVO, 1, 1);
 		p.anyadirMuelle(m1);
-		Muelle m2 = new Muelle("04", cord2, Muelle.estado.OPERATIVO, 2, 1);
+		Muelle m2 = new Muelle("04", cord2, estado.OPERATIVO, 2, 1);
 		p.anyadirMuelle(m2);
 		ISO6346 i1 = new ISO6346("ZRE", 'J' , 56731);
 		ISO6346 i2 = new ISO6346("RTZ", 'Z', 569026);
 		ISO6346 i3 = new ISO6346("WCD", 'Z', 432012);
-		Contenedor c11 = new Contenedor(i1, 100, 400, 500, Contenedor.estados.REGOGIDA, Contenedor.pesos.KILOS, Contenedor.volumenes.METROS, true);
-		Contenedor c21 = new Contenedor(i2, 100, 400, 500, Contenedor.estados.REGOGIDA, Contenedor.pesos.KILOS, Contenedor.volumenes.METROS, true);
-		Contenedor c22 = new Contenedor(i3, 100, 400, 500, Contenedor.estados.REGOGIDA, Contenedor.pesos.KILOS, Contenedor.volumenes.METROS, true);
+		Contenedor c11 = new Contenedor(i1, 100, 400, 500, estados.REGOGIDA, pesos.KILOS, volumenes.METROS, true);
+		Contenedor c21 = new Contenedor(i2, 100, 400, 500, estados.REGOGIDA, pesos.KILOS, volumenes.METROS, true);
+		Contenedor c22 = new Contenedor(i3, 100, 400, 500, estados.REGOGIDA, pesos.KILOS, volumenes.METROS, true);
 		m1.colocarContenedorEnPlaza(c11, 0);
 		m2.colocarContenedorEnPlaza(c21, 0);
 		m2.colocarContenedorEnPlaza(c22, 1);
@@ -149,15 +149,14 @@ public class PuertoTest {
 		Puerto p = new Puerto("ES","BAR");
 		GPSCoordinate cord1 = new GPSCoordinate(5d, 10d);
 		GPSCoordinate cord2 = new GPSCoordinate(20d, -10d);
-		Muelle m1 = new Muelle("01", cord1, Muelle.estado.OPERATIVO, 1, 1);
+		Muelle m1 = new Muelle("01", cord1, estado.OPERATIVO, 1, 1);
 		p.anyadirMuelle(m1);
-		Muelle m2 = new Muelle("04", cord2, Muelle.estado.OPERATIVO, 2, 1);
+		Muelle m2 = new Muelle("04", cord2, estado.OPERATIVO, 2, 1);
 		p.anyadirMuelle(m2);
 		ISO6346 i1 = new ISO6346("ZRE", 'J' , 56731);
 		ISO6346 i2 = new ISO6346("RTZ", 'Z', 569026);
-		ISO6346 i3 = new ISO6346("WCD", 'Z', 432012);
-		Contenedor c11 = new Contenedor(i1, 100, 400, 500, Contenedor.estados.REGOGIDA, Contenedor.pesos.KILOS, Contenedor.volumenes.METROS, true);
-		Contenedor c21 = new Contenedor(i2, 100, 400, 500, Contenedor.estados.REGOGIDA, Contenedor.pesos.KILOS, Contenedor.volumenes.METROS, true);
+		Contenedor c11 = new Contenedor(i1, 100, 400, 500, estados.REGOGIDA, pesos.KILOS, volumenes.METROS, true);
+		Contenedor c21 = new Contenedor(i2, 100, 400, 500, estados.REGOGIDA, pesos.KILOS, volumenes.METROS, true);
 		m1.colocarContenedorEnPlaza(c11, 0);
 		m2.colocarContenedorEnPlaza(c21, 0);
 		assertFalse(p.comprobarSiEstaLleno());
@@ -168,9 +167,9 @@ public class PuertoTest {
 		Puerto p = new Puerto("ES","BAR");
 		GPSCoordinate cord1 = new GPSCoordinate(5d, 10d);
 		GPSCoordinate cord2 = new GPSCoordinate(20d, -10d);
-		Muelle m1 = new Muelle("01", cord1, Muelle.estado.OPERATIVO, 1, 1);
+		Muelle m1 = new Muelle("01", cord1, estado.OPERATIVO, 1, 1);
 		p.anyadirMuelle(m1);
-		Muelle m2 = new Muelle("04", cord2, Muelle.estado.FUERA_DE_SERVICIO, 2, 1);
+		Muelle m2 = new Muelle("04", cord2, estado.FUERA_DE_SERVICIO, 2, 1);
 		p.anyadirMuelle(m2);
 		Muelle[] muellesEsperados = {m1};
 		assertArrayEquals(muellesEsperados, p.muellesOperativos());
@@ -180,12 +179,12 @@ public class PuertoTest {
 	public void testMuellesConEspacio() {
 		Puerto p = new Puerto("ES","BAR");
 		GPSCoordinate cord1 = new GPSCoordinate(5d, 10d);
-		Muelle m1 = new Muelle("01", cord1, Muelle.estado.OPERATIVO, 1, 1);
+		Muelle m1 = new Muelle("01", cord1, estado.OPERATIVO, 1, 1);
 		p.anyadirMuelle(m1);
 		Muelle[] muellesEsperados = {m1};
 		assertArrayEquals(muellesEsperados, p.muellesConEspacio());
 		ISO6346 i1 = new ISO6346("ZRE", 'J' , 56731);
-		Contenedor c11 = new Contenedor(i1, 100, 400, 500, Contenedor.estados.REGOGIDA, Contenedor.pesos.KILOS, Contenedor.volumenes.METROS, true);
+		Contenedor c11 = new Contenedor(i1, 100, 400, 500, estados.REGOGIDA, pesos.KILOS, volumenes.METROS, true);
 		m1.colocarContenedorEnPlaza(c11, 0);
 		assertEquals(0, p.muellesConEspacio().length);
 	}
@@ -195,9 +194,9 @@ public class PuertoTest {
 		Puerto p = new Puerto("ES","BAR");
 		GPSCoordinate cord1 = new GPSCoordinate(10d, 10d);
 		GPSCoordinate cord2 = new GPSCoordinate(-10d, -10d);
-		Muelle m1 = new Muelle("01", cord1, Muelle.estado.OPERATIVO, 1, 1);
+		Muelle m1 = new Muelle("01", cord1, estado.OPERATIVO, 1, 1);
 		p.anyadirMuelle(m1);
-		Muelle m2 = new Muelle("04", cord2, Muelle.estado.OPERATIVO, 2, 1);
+		Muelle m2 = new Muelle("04", cord2, estado.OPERATIVO, 2, 1);
 		p.anyadirMuelle(m2);
 		GPSCoordinate puntoDado = new GPSCoordinate(15d , 15d);
 		Muelle[] muelleCercanos = {m1};
-- 
GitLab