diff --git a/.classpath b/.classpath index fc3a199..64d5270 100644 --- a/.classpath +++ b/.classpath @@ -1,10 +1,5 @@ - - - - - @@ -18,10 +13,16 @@ + + + + + + - + \ No newline at end of file diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 43c8d71..1db2692 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,8 +1,8 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate @@ -12,4 +12,4 @@ org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning org.eclipse.jdt.core.compiler.release=enabled -org.eclipse.jdt.core.compiler.source=17 +org.eclipse.jdt.core.compiler.source=11 diff --git a/data/coches2.json b/data/coches2.json new file mode 100644 index 0000000..2c11fc4 --- /dev/null +++ b/data/coches2.json @@ -0,0 +1,10 @@ +{ + "coches": [ + { + "marca": "Chevrolet", + "modelo": "Camaro", + "año": 2023, + "precio": 52000 + } + ] +} diff --git a/data/coches3.json b/data/coches3.json new file mode 100644 index 0000000..2b01592 --- /dev/null +++ b/data/coches3.json @@ -0,0 +1,10 @@ +{ + "coches": [ + { + "marca": "Ford", + "modelo": "Mustang", + "año": 2021, + "precio": 45000 + } + ] +} diff --git a/data/coches4.json b/data/coches4.json new file mode 100644 index 0000000..6e15e88 --- /dev/null +++ b/data/coches4.json @@ -0,0 +1,10 @@ +{ + "coches": [ + { + "marca": "Toyota", + "modelo": "Corolla", + "año": 2022, + "precio": 22000 + } + ] +} diff --git a/pom.xml b/pom.xml index 0220a89..823205b 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ maven-compiler-plugin 3.11.0 - 17 + 11 diff --git a/src/org/hmis/Coche.java b/src/org/hmis/Coche.java index e0a0701..ee20309 100644 --- a/src/org/hmis/Coche.java +++ b/src/org/hmis/Coche.java @@ -65,8 +65,10 @@ public boolean equals(Object obj) { if (getClass() != obj.getClass()) return false; Coche other = (Coche) obj; - return año == other.año && Objects.equals(marca, other.marca) && Objects.equals(modelo, other.modelo) - && precio == other.precio; + return año == other.año && + Objects.equals(marca, other.marca) && + Objects.equals(modelo, other.modelo) && + precio == other.precio; } diff --git a/test/org/hmis/CocheTest.java b/test/org/hmis/CocheTest.java new file mode 100644 index 0000000..7ed3e09 --- /dev/null +++ b/test/org/hmis/CocheTest.java @@ -0,0 +1,219 @@ +package org.hmis; + +import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; +import org.junit.jupiter.params.provider.ValueSource; + +class CocheTest { + @Test + void testEqualsObject() { + Coche coche1 = new Coche (); // Arrange + assertTrue(coche1.equals(coche1)); // Action // Assert + } + + @Test + void testEqualsObjectNull() { + Coche coche1 = new Coche (); // Arrange + Coche coche2 = null; + assertFalse(coche1.equals(coche2)); // Action // Assert + } + + @Test + void testEqualsObjectString() { + Coche coche1 = new Coche (); // Arrange + String coche2 = ""; + assertFalse(coche1.equals(coche2)); // Action // Assert + } + + @Test + void testEqualsObjectMultiple1() { + Coche primero = new Coche ("Chevrolet", "Camaro", 2023, 52000); + Coche segundo = new Coche ("Chevrolet", "Camaro", 2023, 52000); + assertEquals(true, primero.equals(segundo)); // Action // Assert + } + @Test + void testEqualsObjectMultiple2() { + Coche primero = new Coche ("Chevrolet", "Camaro", 2023, 52000); + Coche segundo = new Coche ("Chevrolet", "Camaro", 2021, 52000); + assertEquals(false, primero.equals(segundo)); // Action // Assert + } + @Test + void testEqualsObjectMultiple3() { + Coche primero = new Coche ("Chevrolet", "Camaro", 2023, 52000); + Coche segundo = new Coche ("Ford", "Camaro", 2023, 52000); + assertEquals(false, primero.equals(segundo)); // Action // Assert + } + @Test + void testEqualsObjectMultiple4() { + Coche primero = new Coche ("Chevrolet", "Camaro", 2023, 52000); + Coche segundo = new Coche ("Chevrolet", "Mustang", 2023, 52000); + assertEquals(false, primero.equals(segundo)); // Action // Assert + } + @Test + void testEqualsObjectMultiple5() { + Coche primero = new Coche ("Chevrolet", "Camaro", 2023, 52000); + Coche segundo = new Coche ("Chevrolet", "Camaro", 2023, 45000); + assertEquals(false, primero.equals(segundo)); // Action // Assert + } + + @Test + void testEqualsGetMarca() { + Coche coche1 = new Coche ("Chevrolet", "Camaro", 2023, 52000); + String resultado = "Chevrolet"; + assertEquals(resultado,coche1.getMarca()); // Action // Assert + } + + @Test + void testEqualsSetMarca() { + Coche coche1 = new Coche ("Chevrolet", "Camaro", 2023, 52000); + String resultado = "Honda"; + coche1.setMarca("Honda"); + assertEquals(resultado, coche1.getMarca()); // Action // Assert + } + + @Test + void testEqualsGetModelo() { + Coche coche1 = new Coche ("Chevrolet", "Camaro", 2023, 52000); + String resultado = "Camaro"; + assertEquals(resultado, coche1.getModelo()); // Action // Assert + } + + @Test + void testEqualsSetModelo() { + Coche coche1 = new Coche ("Chevrolet", "Camaro", 2023, 52000); + String resultado = "Civic"; + coche1.setModelo("Civic"); + assertEquals(resultado, coche1.getModelo()); // Action // Assert + } + + @Test + void testEqualsGetAño() { + Coche coche1 = new Coche ("Chevrolet", "Camaro", 2023, 52000); + int resultado = 2023; + assertEquals(resultado, coche1.getAño()); // Action // Assert + } + + @Test + void testEqualsSetAño() { + Coche coche1 = new Coche ("Chevrolet", "Camaro", 2023, 52000); + int resultado = 2023; + coche1.setAño(2023); + assertEquals(resultado, coche1.getAño()); // Action // Assert + } + + @Test + void testEqualsGetPrecio() { + Coche coche1 = new Coche ("Chevrolet", "Camaro", 2023, 52000); + int resultado = 52000; + assertEquals(resultado, coche1.getPrecio()); // Action // Assert + } + + @Test + void testEqualsSetPrecio() { + Coche coche1 = new Coche ("Chevrolet", "Camaro", 2023, 52000); + int resultado = 40000; + coche1.setPrecio(40000); + assertEquals(resultado, coche1.getPrecio()); // Action // Assert + } + + @Test + void testEqualsString() { + Coche coche1 = new Coche ("Chevrolet", "Camaro", 2023, 52000); + String resultado = "Coche [marca=Chevrolet, modelo=Camaro, año=2023, precio=52000]"; + assertEquals(resultado, coche1.toString()); // Action // Assert + } + + @ParameterizedTest + @CsvSource({"Toyota, Corolla, 2020, 22000", + "Ford, Mustang, 2021, 45000", + "Chevrolet, Camaro, 2023, 22000", + "Toyota, Civic, 2022, 25000"}) + + void testEqualsObjectMultiple(String marca, String modelo, int año, int precio) { + Coche coche1 = new Coche("Chevrolet", "Camaro", 2023, 52000); + Coche coche2 = new Coche(marca, modelo, año, precio); + assertEquals(false, coche1.equals(coche2)); + } + + @ParameterizedTest + @ValueSource(strings = {"Toyota", "Ford", "Chevrolet", "Honda"}) + + void testGetMarca(String marca){ + Coche coche1 = new Coche(marca, "-", 0, 0); + assertEquals(marca, coche1.getMarca()); + } + + @ParameterizedTest + @ValueSource(strings = {"Corolla", "Mustang", "Camaro", "Civic"}) + + void testGetModelo(String modelo){ + Coche coche1 = new Coche("-", modelo, 2, 2); + assertEquals(modelo, coche1.getModelo()); + } + + @ParameterizedTest + @ValueSource(ints = {2022, 2021, 2023, 2022}) + + void testGetAño(int año){ + Coche coche1 = new Coche("-", "-", año, 2); + assertEquals(año, coche1.getAño()); + } + + @ParameterizedTest + @ValueSource(ints = {22000, 45000, 52000, 25000}) + + void testGetPrecio(int precio){ + Coche coche1 = new Coche("-", "-", 2, precio); + assertEquals(precio, coche1.getPrecio()); + } + + @ParameterizedTest + @ValueSource(strings = {"Toyota", "Ford", "Chevrolet", "Honda"}) + + void testSetMarca(String marca){ + Coche coche1 = new Coche("-", "-", 2, 2); + coche1.setMarca(marca); + assertEquals(marca, coche1.getMarca()); + } + + @ParameterizedTest + @ValueSource(strings = {"Corolla", "Mustang", "Camaro", "Civic"}) + + void testSetModelo(String modelo){ + Coche coche1 = new Coche("-", "-", 2, 2); + coche1.setModelo(modelo); + assertEquals(modelo, coche1.getModelo()); + } + + @ParameterizedTest + @ValueSource(ints = {2022, 2021, 2023, 2022}) + + void testSetAño(int año){ + Coche coche1 = new Coche("-", "-", 2, 2); + coche1.setAño(año); + assertEquals(año, coche1.getAño()); + } + + @ParameterizedTest + @ValueSource(ints = {22000, 45000, 52000, 25000}) + + void testSetPrecio(int precio){ + Coche coche1 = new Coche("-", "-", 2, 2); + coche1.setPrecio(precio); + assertEquals(precio, coche1.getPrecio()); + } + + @ParameterizedTest + @CsvSource({"Toyota, Corolla, 2022, 22000", + "Ford, Mustang, 2021, 45000", + "Chevrolet, Camaro, 2023, 52000", + "Honda, Civic, 2022, 25000"}) + void testToString(String marca, String modelo, int año, int precio) { + String result = "Coche [marca=" + marca + ", modelo=" + modelo + ", año=" + año + ", precio=" + precio + "]"; + Coche coche1 = new Coche(marca, modelo, año, precio); + assertEquals(result, coche1.toString()); + } + +} \ No newline at end of file diff --git a/test/org/hmis/JsonReaderTest.java b/test/org/hmis/JsonReaderTest.java index 549c69a..8026f0c 100644 --- a/test/org/hmis/JsonReaderTest.java +++ b/test/org/hmis/JsonReaderTest.java @@ -2,27 +2,74 @@ import static org.junit.jupiter.api.Assertions.*; - import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; +import org.junit.jupiter.params.provider.ValueSource; class JsonReaderTest { @Test void testLeerCochesJSON() { - String ruta = "data/coches.json"; - Coche [] coches = JsonReader.leerCochesJSON(ruta); + String filepath = "data/coches.json"; + Coche [] coches = JsonReader.leerCochesJSON(filepath); assertEquals (4, coches.length); } @Test void testLeerCochesJSONprimero() { - String ruta = "data/coches.json"; - Coche primero = new Coche ("Toyota", "Corolla", 2022, 22000); - Coche [] coches = JsonReader.leerCochesJSON(ruta); - assertEquals(primero, coches[0]); - assertTrue (primero.equals(coches[0])); - assertTrue (coches[0].equals(primero)); + String filepath = "data/coches.json"; + Coche primero = new Coche ("Chevrolet", "Camaro", 2023, 52000); + Coche [] coches = JsonReader.leerCochesJSON(filepath); + assertEquals(primero, coches[2]); + assertTrue (primero.equals(coches[2])); + assertTrue (coches[2].equals(primero)); + } + + @Test + void testError() { + String filepath = "data/coches.json"; + Coche primero = new Coche ("Chevrolet", "Camaro", 2023, 52000); + Coche [] coches = JsonReader.leerCochesJSON(filepath); + } + @Test + void testExcepcionLeerArchivo() { + String filepath = "data/excepcion.json"; + assertDoesNotThrow(() -> JsonReader.leerCochesJSON(filepath)); + } + @Test + void testObjectoNoNull() { + JsonReader jsonReader = new JsonReader(); + assertNotEquals(jsonReader, null); + } + + @ParameterizedTest + @CsvSource({"data/coches2.json, 1", + "data/coches3.json, 1", + "data/coches4.json, 1"}) + void testLeerCochesJSON(String filepath, int nCoches) { + Coche[] coches = JsonReader.leerCochesJSON(filepath); + assertEquals(nCoches, coches.length); + } + + @ParameterizedTest + @CsvSource({"data/coches2.json, Chevrolet, Camaro, 2023, 52000", + "data/coches3.json, Ford, Mustang, 2021, 45000", + "data/coches4.json, Toyota, Corolla, 2022, 22000"}) + void testLeerCochesJSONprimero(String filepath, String marca, String modelo, int año, int precio) { + Coche[] coches = JsonReader.leerCochesJSON(filepath); + Coche coche1 = new Coche (marca, modelo, año, precio); + assertEquals(coche1, coches[0]); + assertTrue(coche1.equals(coches[0])); + assertTrue(coches[0].equals(coche1)); + } + + @ParameterizedTest + @ValueSource(strings = {"data/excepcion.json", "data/coche.json", "data/otro.json"}) + void testExcepcionLeerCochesJSON(String filepath) { + assertDoesNotThrow(() -> JsonReader.leerCochesJSON(filepath)); + } } diff --git a/test/org/hmis/MainTest.java b/test/org/hmis/MainTest.java new file mode 100644 index 0000000..1eec4f8 --- /dev/null +++ b/test/org/hmis/MainTest.java @@ -0,0 +1,27 @@ +package org.hmis; + +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import org.junit.jupiter.api.Test; + +public class MainTest { + @Test + void testObjectNotNull() { + Main main = new Main(); + + assertNotEquals(main, null); + } + + @Test + void testMain() { + String filepath = "data/coches.json"; + Coche[] coches = JsonReader.leerCochesJSON(filepath); + + String resultado = ""; + for (Coche coche : coches) { + resultado = resultado + coche + "\n"; + } + + Main.main(null); + } + +}