diff --git a/.classpath b/.classpath index 7a1eac0324133f37a8af55b6d35ab52afbd8dfce..657b730178357daeb1d137b073f249338da50581 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 107c9b35f127a683f16a3b47a57993328a1035dd..0ca7ea1614fd6c710022acfdd301be21b32aed1f 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 9b65ed1e889f94de3645d5442980b95b233baea9..b89a44ad63977c07d709ec34d86613b5b115da22 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 0000000000000000000000000000000000000000..db0ee907697b7ed57cae33395f2f5f911e898840 --- /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 d8ef274dda54df61f97fc347ca2e2204ea39b040..deb5210a49784bab171e6fac2f0bfd4c21faf048 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 00123ec2fa97b3399adb204d37cc48ed540e8785..3c8a564ed68701cb7dfcfb49e63f540ef279000c 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};