diff --git a/.env.example b/.env.example deleted file mode 100644 index ae68f90..0000000 --- a/.env.example +++ /dev/null @@ -1,6 +0,0 @@ -# Información de configuración de la base de datos -DB_HOST=localhost -DB_PORT=3306 -DB_NAME=mapa_mundi -DB_USER= -DB_PASSWORD= \ No newline at end of file diff --git a/README.md b/README.md index b7623a9..5d8feff 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Repositorio para la actividad 99.1 de Ampliación de Entornos (RA1-RA2-RA3-RA4-RA5). +# Repositorio para el examen de recuperación de Ampliación de Entornos (RA3-RA4-RA5). ¡Ánimo y a por ello! diff --git a/pom.xml b/pom.xml index 2b18b8b..0069299 100644 --- a/pom.xml +++ b/pom.xml @@ -1,6 +1,6 @@ 4.0.0 - org.lapaloma.gobierno + org.lapaloma.examen.aaee aaee_gobierno 0.0.2 diff --git a/src/main/java/org/lapaloma/gobierno/AppHogwartsSB.java b/src/main/java/org/lapaloma/examen/aaee/AppGobiernoSB.java similarity index 62% rename from src/main/java/org/lapaloma/gobierno/AppHogwartsSB.java rename to src/main/java/org/lapaloma/examen/aaee/AppGobiernoSB.java index 1f4fe82..c716991 100644 --- a/src/main/java/org/lapaloma/gobierno/AppHogwartsSB.java +++ b/src/main/java/org/lapaloma/examen/aaee/AppGobiernoSB.java @@ -1,13 +1,13 @@ -package org.lapaloma.gobierno; +package org.lapaloma.examen.aaee; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication -public class AppHogwartsSB { +public class AppGobiernoSB { public static void main(String[] args) { - SpringApplication.run(AppHogwartsSB.class, args); + SpringApplication.run(AppGobiernoSB.class, args); } diff --git a/src/main/java/org/lapaloma/examen/aaee/controller/MiembroController.java b/src/main/java/org/lapaloma/examen/aaee/controller/MiembroController.java new file mode 100644 index 0000000..601c18d --- /dev/null +++ b/src/main/java/org/lapaloma/examen/aaee/controller/MiembroController.java @@ -0,0 +1,63 @@ +package org.lapaloma.examen.aaee.controller; + +import java.util.List; + +import org.lapaloma.examen.aaee.service.MiembroService; +import org.lapaloma.examen.aaee.vo.Miembro; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * Controlador REST para gestionar miembros de ministerios + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 08 mayo 2026 + */ +@RestController +@RequestMapping("/gobierno/miembros") +public class MiembroController { + private final MiembroService miembroService; + + // Spring inyecta automáticamente el service con su DAO + public MiembroController(MiembroService miembroService) { + this.miembroService = miembroService; + } + + /** + * GET /gobierno/miembros - Obtiene la lista de todos los miembros + * + * @return List lista de todos los miembros en formato JSON + */ + @GetMapping + public List getAll() { + List listaMiembros = miembroService.obtenerListaMiembros(); + return listaMiembros; + } + + /** + * GET /gobierno/miembros/nombre/{nombre} - Obtiene un miembro por su nombre + * + * @param nombre el nombre del miembro a buscar + * @return Miembro el miembro encontrado en formato JSON + */ + @GetMapping("/nombre/{nombre}") + public Miembro getByNombre(@PathVariable String nombre) { + Miembro miembro = miembroService.obtenerMiembroPorNombre(nombre); + return miembro; + } + + /** + * GET /gobierno/miembros/alias/{alias} - Obtiene un miembro por su alias + * + * @param alias el alias del miembro a buscar + * @return Miembro el miembro encontrado en formato JSON + */ + @GetMapping("/alias/{alias}") + public Miembro getByAlias(@PathVariable String alias) { + Miembro miembro = miembroService.obtenerMiembroPorAlias(alias); + return miembro; + } + +} diff --git a/src/main/java/org/lapaloma/gobierno/controller/MinisterioController.java b/src/main/java/org/lapaloma/examen/aaee/controller/MinisterioController.java similarity index 85% rename from src/main/java/org/lapaloma/gobierno/controller/MinisterioController.java rename to src/main/java/org/lapaloma/examen/aaee/controller/MinisterioController.java index 9faf851..097eca7 100644 --- a/src/main/java/org/lapaloma/gobierno/controller/MinisterioController.java +++ b/src/main/java/org/lapaloma/examen/aaee/controller/MinisterioController.java @@ -1,12 +1,12 @@ /** * */ -package org.lapaloma.gobierno.controller; +package org.lapaloma.examen.aaee.controller; import java.util.List; -import org.lapaloma.gobierno.service.MinisterioService; -import org.lapaloma.gobierno.vo.Ministerio; +import org.lapaloma.examen.aaee.service.MinisterioService; +import org.lapaloma.examen.aaee.vo.Ministerio; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/src/main/java/org/lapaloma/examen/aaee/dao/IMiembroDAO.java b/src/main/java/org/lapaloma/examen/aaee/dao/IMiembroDAO.java new file mode 100644 index 0000000..f5f2753 --- /dev/null +++ b/src/main/java/org/lapaloma/examen/aaee/dao/IMiembroDAO.java @@ -0,0 +1,14 @@ +package org.lapaloma.examen.aaee.dao; + +import java.util.List; + +import org.lapaloma.examen.aaee.vo.Miembro; + +public interface IMiembroDAO { + + public List obtenerListaMiembros(); + + public Miembro obtenerMiembroPorNombre(String nombre); + + public Miembro obtenerMiembroPorAlias(String alias); +} diff --git a/src/main/java/org/lapaloma/gobierno/dao/IMinisterioDAO.java b/src/main/java/org/lapaloma/examen/aaee/dao/IMinisterioDAO.java similarity index 58% rename from src/main/java/org/lapaloma/gobierno/dao/IMinisterioDAO.java rename to src/main/java/org/lapaloma/examen/aaee/dao/IMinisterioDAO.java index 4f9ca8d..b8af06f 100644 --- a/src/main/java/org/lapaloma/gobierno/dao/IMinisterioDAO.java +++ b/src/main/java/org/lapaloma/examen/aaee/dao/IMinisterioDAO.java @@ -1,8 +1,8 @@ -package org.lapaloma.gobierno.dao; +package org.lapaloma.examen.aaee.dao; import java.util.List; -import org.lapaloma.gobierno.vo.Ministerio; +import org.lapaloma.examen.aaee.vo.Ministerio; public interface IMinisterioDAO { diff --git a/src/main/java/org/lapaloma/examen/aaee/dao/impl/MiembroDaoJDBC.java b/src/main/java/org/lapaloma/examen/aaee/dao/impl/MiembroDaoJDBC.java new file mode 100644 index 0000000..d02f6aa --- /dev/null +++ b/src/main/java/org/lapaloma/examen/aaee/dao/impl/MiembroDaoJDBC.java @@ -0,0 +1,129 @@ +package org.lapaloma.examen.aaee.dao.impl; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import org.lapaloma.examen.aaee.dao.IMiembroDAO; +import org.lapaloma.examen.aaee.vo.Miembro; +import org.lapaloma.examen.aaee.vo.Ministerio; +import org.springframework.stereotype.Repository; + +@Repository +public class MiembroDaoJDBC implements IMiembroDAO { + private final DataSource dataSource; + + // Spring inyecta el DataSource configurado automáticamente + public MiembroDaoJDBC(DataSource dataSource) { + this.dataSource = dataSource; + } + + @Override + public List obtenerListaMiembros() { + + List lista = new ArrayList<>(); + + String sentenciaSQL = """ + SELECT * FROM miembro + """; + + try (Connection conexion = dataSource.getConnection(); + PreparedStatement sentenciaJDBCPreparada = conexion.prepareStatement(sentenciaSQL);) { + + System.out.println(sentenciaJDBCPreparada); + + ResultSet resultadoSentencia = sentenciaJDBCPreparada.executeQuery(); + + while (resultadoSentencia.next()) { + lista.add(getLineaFromResultSet(resultadoSentencia)); + } + + } catch (Exception e) { + e.printStackTrace(); + } + + return lista; + } + + @Override + public Miembro obtenerMiembroPorNombre(String nombre) { + + String sentenciaSQL = """ + SELECT * FROM miembro WHERE nombre = ? + """; + + try (Connection conexion = dataSource.getConnection(); + PreparedStatement sentenciaJDBCPreparada = conexion.prepareStatement(sentenciaSQL);) { + + sentenciaJDBCPreparada.setString(1, nombre); + + System.out.println(sentenciaJDBCPreparada); + + ResultSet resultadoSentencia = sentenciaJDBCPreparada.executeQuery(); + + if (resultadoSentencia.next()) { + return getLineaFromResultSet(resultadoSentencia); + } + + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } + + @Override + public Miembro obtenerMiembroPorAlias(String alias) { + + String sentenciaSQL = """ + SELECT * FROM miembro WHERE alias = ? + """; + + try (Connection conexion = dataSource.getConnection(); + PreparedStatement sentenciaJDBCPreparada = conexion.prepareStatement(sentenciaSQL);) { + + sentenciaJDBCPreparada.setString(1, alias); + + System.out.println(sentenciaJDBCPreparada); + + ResultSet resultadoSentencia = sentenciaJDBCPreparada.executeQuery(); + + if (resultadoSentencia.next()) { + return getLineaFromResultSet(resultadoSentencia); + } + + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } + + private Miembro getLineaFromResultSet(ResultSet resultadoSentencia) throws SQLException { + + Miembro miembro = new Miembro(); + + miembro.setIdentificador(resultadoSentencia.getInt("codMiembro")); + miembro.setNif(resultadoSentencia.getString("nif")); + miembro.setNombre(resultadoSentencia.getString("nombre")); + miembro.setApellido1(resultadoSentencia.getString("apellido1")); + miembro.setAlias(resultadoSentencia.getString("alias")); + + // Obtener el código del ministerio + int codigoMinisterio = resultadoSentencia.getInt("codigoMinisterio"); + + // Si codigoMinisterio es válido (no es 0), crear objeto Ministerio + if (codigoMinisterio != 0) { + Ministerio ministerio = new Ministerio(); + ministerio.setIdentificador(codigoMinisterio); + miembro.setMinisterio(ministerio); + } + + return miembro; + } +} diff --git a/src/main/java/org/lapaloma/gobierno/dao/impl/MinisterioDaoJDBC.java b/src/main/java/org/lapaloma/examen/aaee/dao/impl/MinisterioDaoJDBC.java similarity index 92% rename from src/main/java/org/lapaloma/gobierno/dao/impl/MinisterioDaoJDBC.java rename to src/main/java/org/lapaloma/examen/aaee/dao/impl/MinisterioDaoJDBC.java index 2845394..4007dec 100644 --- a/src/main/java/org/lapaloma/gobierno/dao/impl/MinisterioDaoJDBC.java +++ b/src/main/java/org/lapaloma/examen/aaee/dao/impl/MinisterioDaoJDBC.java @@ -1,4 +1,4 @@ -package org.lapaloma.gobierno.dao.impl; +package org.lapaloma.examen.aaee.dao.impl; import java.sql.Connection; import java.sql.PreparedStatement; @@ -9,8 +9,8 @@ import java.util.List; import javax.sql.DataSource; -import org.lapaloma.gobierno.dao.IMinisterioDAO; -import org.lapaloma.gobierno.vo.Ministerio; +import org.lapaloma.examen.aaee.dao.IMinisterioDAO; +import org.lapaloma.examen.aaee.vo.Ministerio; import org.springframework.stereotype.Repository; @Repository diff --git a/src/main/java/org/lapaloma/examen/aaee/excepcion/MiembroNoEncontradoException.java b/src/main/java/org/lapaloma/examen/aaee/excepcion/MiembroNoEncontradoException.java new file mode 100644 index 0000000..f4d0254 --- /dev/null +++ b/src/main/java/org/lapaloma/examen/aaee/excepcion/MiembroNoEncontradoException.java @@ -0,0 +1,12 @@ +package org.lapaloma.examen.aaee.excepcion; + +public class MiembroNoEncontradoException extends RuntimeException { + /** + * + */ + private static final long serialVersionUID = -3344627619585104665L; + + public MiembroNoEncontradoException(String mensaje) { + super(mensaje); + } +} diff --git a/src/main/java/org/lapaloma/gobierno/excepcion/MinisterioNoEncontradoException.java b/src/main/java/org/lapaloma/examen/aaee/excepcion/MinisterioNoEncontradoException.java similarity index 85% rename from src/main/java/org/lapaloma/gobierno/excepcion/MinisterioNoEncontradoException.java rename to src/main/java/org/lapaloma/examen/aaee/excepcion/MinisterioNoEncontradoException.java index 327ef7f..d0bca6b 100644 --- a/src/main/java/org/lapaloma/gobierno/excepcion/MinisterioNoEncontradoException.java +++ b/src/main/java/org/lapaloma/examen/aaee/excepcion/MinisterioNoEncontradoException.java @@ -1,4 +1,4 @@ -package org.lapaloma.gobierno.excepcion; +package org.lapaloma.examen.aaee.excepcion; public class MinisterioNoEncontradoException extends RuntimeException { /** diff --git a/src/main/java/org/lapaloma/examen/aaee/service/MiembroService.java b/src/main/java/org/lapaloma/examen/aaee/service/MiembroService.java new file mode 100644 index 0000000..0816b4c --- /dev/null +++ b/src/main/java/org/lapaloma/examen/aaee/service/MiembroService.java @@ -0,0 +1,79 @@ +package org.lapaloma.examen.aaee.service; + +import java.util.List; + +import org.lapaloma.examen.aaee.dao.IMiembroDAO; +import org.lapaloma.examen.aaee.excepcion.MiembroNoEncontradoException; +import org.lapaloma.examen.aaee.vo.Miembro; +import org.springframework.stereotype.Service; + +@Service +public class MiembroService { + + private final IMiembroDAO miembroDAO; + + // Spring inyecta el DAO automáticamente + public MiembroService(IMiembroDAO miembroDAO) { + this.miembroDAO = miembroDAO; + } + + /** + * Obtiene la lista completa de miembros + * + * @return List lista de todos los miembros + * @throws RuntimeException si la lista está vacía + */ + public List obtenerListaMiembros() { + + List lista = miembroDAO.obtenerListaMiembros(); + + // Simulamos el caso de lista vacía para probar la excepción + lista=null; + + if (lista == null || lista.isEmpty()) { + throw new RuntimeException("No hay miembros disponibles"); + } + + return lista; + } + + /** + * Obtiene un miembro por su nombre + * + * @param nombre el nombre del miembro a buscar + * @return Miembro el miembro encontrado + * @throws MiembroNoEncontradoException si no se encuentra el miembro + */ + public Miembro obtenerMiembroPorNombre(String nombre) { + + Miembro miembro = miembroDAO.obtenerMiembroPorNombre(nombre); + + // Simulamos el caso de miembro no encontrado para probar la excepción + miembro=null; + + if (miembro == null) { + throw new MiembroNoEncontradoException("Miembro con nombre '" + nombre + "' no encontrado"); + } + + return miembro; + } + + /** + * Obtiene un miembro por su alias + * + * @param alias el alias del miembro a buscar + * @return Miembro el miembro encontrado + * @throws MiembroNoEncontradoException si no se encuentra el miembro + */ + public Miembro obtenerMiembroPorAlias(String alias) { + + Miembro miembro = miembroDAO.obtenerMiembroPorAlias(alias); + + if (miembro == null) { + throw new MiembroNoEncontradoException("Miembro con alias '" + alias + "' no encontrado"); + } + + return miembro; + } + +} diff --git a/src/main/java/org/lapaloma/gobierno/service/MinisterioService.java b/src/main/java/org/lapaloma/examen/aaee/service/MinisterioService.java similarity index 83% rename from src/main/java/org/lapaloma/gobierno/service/MinisterioService.java rename to src/main/java/org/lapaloma/examen/aaee/service/MinisterioService.java index 917340b..56c0053 100644 --- a/src/main/java/org/lapaloma/gobierno/service/MinisterioService.java +++ b/src/main/java/org/lapaloma/examen/aaee/service/MinisterioService.java @@ -1,12 +1,12 @@ /** * */ -package org.lapaloma.gobierno.service; +package org.lapaloma.examen.aaee.service; import java.util.List; -import org.lapaloma.gobierno.dao.IMinisterioDAO; -import org.lapaloma.gobierno.vo.Ministerio; +import org.lapaloma.examen.aaee.dao.IMinisterioDAO; +import org.lapaloma.examen.aaee.vo.Ministerio; import org.springframework.stereotype.Service; @Service diff --git a/src/main/java/org/lapaloma/examen/aaee/vo/Miembro.java b/src/main/java/org/lapaloma/examen/aaee/vo/Miembro.java new file mode 100644 index 0000000..90d6326 --- /dev/null +++ b/src/main/java/org/lapaloma/examen/aaee/vo/Miembro.java @@ -0,0 +1,88 @@ +package org.lapaloma.examen.aaee.vo; + +/** + * + * Casa: Clase de persistencia que representa un Miembro de un Ministerio. + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 03 marzo 2026 + * + * + */ +public class Miembro { + private int identificador; + private String nif; + private String nombre; + private String apellido1; + private String alias; + private Ministerio ministerio; + + public Miembro() { + super(); + } + + public Miembro(int identificador, String nif, String nombre, String apellido1, String alias, + Ministerio ministerio) { + super(); + this.identificador = identificador; + this.nif = nif; + this.nombre = nombre; + this.apellido1 = apellido1; + this.alias = alias; + this.ministerio = ministerio; + } + + public int getIdentificador() { + return identificador; + } + + public void setIdentificador(int identificador) { + this.identificador = identificador; + } + + public String getNif() { + return nif; + } + + public void setNif(String nif) { + this.nif = nif; + } + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public String getApellido1() { + return apellido1; + } + + public void setApellido1(String apellido1) { + this.apellido1 = apellido1; + } + + public String getAlias() { + return alias; + } + + public void setAlias(String alias) { + this.alias = alias; + } + + public Ministerio getMinisterio() { + return ministerio; + } + + public void setMinisterio(Ministerio ministerio) { + this.ministerio = ministerio; + } + + @Override + public String toString() { + return "Miembro [identificador=" + identificador + ", nif=" + nif + ", nombre=" + nombre + ", apellido1=" + + apellido1 + ", alias=" + alias + ", ministerio=" + ministerio + "]"; + } +} diff --git a/src/main/java/org/lapaloma/gobierno/vo/Ministerio.java b/src/main/java/org/lapaloma/examen/aaee/vo/Ministerio.java similarity index 97% rename from src/main/java/org/lapaloma/gobierno/vo/Ministerio.java rename to src/main/java/org/lapaloma/examen/aaee/vo/Ministerio.java index 78b617a..f1272f8 100644 --- a/src/main/java/org/lapaloma/gobierno/vo/Ministerio.java +++ b/src/main/java/org/lapaloma/examen/aaee/vo/Ministerio.java @@ -1,4 +1,4 @@ -package org.lapaloma.gobierno.vo; +package org.lapaloma.examen.aaee.vo; /** * diff --git a/src/test/java/org/lapaloma/examen/aaee/service/MiembroServiceTest.java b/src/test/java/org/lapaloma/examen/aaee/service/MiembroServiceTest.java new file mode 100644 index 0000000..4da2c81 --- /dev/null +++ b/src/test/java/org/lapaloma/examen/aaee/service/MiembroServiceTest.java @@ -0,0 +1,151 @@ +package org.lapaloma.examen.aaee.service; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.lapaloma.examen.aaee.dao.IMiembroDAO; +import org.lapaloma.examen.aaee.excepcion.MiembroNoEncontradoException; +import org.lapaloma.examen.aaee.vo.Miembro; +import org.lapaloma.examen.aaee.vo.Ministerio; + +class MiembroServiceTest { + + private MiembroService miembroService; + private FakeMiembroDAO fakeDAO; + + @BeforeEach + void setUp() { + fakeDAO = new FakeMiembroDAO(); + miembroService = new MiembroService(fakeDAO); + } + + // ========================= + // obtenerListaMiembros + // ========================= + + @Test + void obtenerListaMiembros_cuandoListaEstaVacia_lanzaExcepcion() { + assertThrows(RuntimeException.class, () -> { + miembroService.obtenerListaMiembros(); + }); + } + + @Test + void obtenerListaMiembros_cuandoHayDatos_retornaLista() { + Ministerio ministerio = new Ministerio(1, "Ministerio de Defensa", 120000, 6000); + Miembro miembro1 = new Miembro(1, "23451596F", "James", "Logan", "Lobezno", ministerio); + + fakeDAO.data.add(miembro1); + + List resultado = miembroService.obtenerListaMiembros(); + + assertNotNull(resultado); + assertEquals(1, resultado.size()); + assertEquals("James", resultado.get(0).getNombre()); + } + + // ========================= + // obtenerMiembroPorNombre + // ========================= + + @Test + void obtenerMiembroPorNombre_cuandoNoExiste_lanzaExcepcion() { + assertThrows(MiembroNoEncontradoException.class, () -> { + miembroService.obtenerMiembroPorNombre("NoExiste"); + }); + } + + @Test + void obtenerMiembroPorNombre_cuandoExiste_retornaMiembro() { + Ministerio ministerio = new Ministerio(1, "Ministerio de Defensa", 120000, 6000); + Miembro miembro1 = new Miembro(1, "23451596F", "James", "Logan", "Lobezno", ministerio); + + fakeDAO.data.add(miembro1); + + Miembro resultado = miembroService.obtenerMiembroPorNombre("James"); + + assertNotNull(resultado); + assertEquals("James", resultado.getNombre()); + assertEquals("Logan", resultado.getApellido1()); + assertEquals("Lobezno", resultado.getAlias()); + } + + // ========================= + // obtenerMiembroPorAlias + // ========================= + + @Test + void obtenerMiembroPorAlias_cuandoNoExiste_lanzaExcepcion() { + assertThrows(MiembroNoEncontradoException.class, () -> { + miembroService.obtenerMiembroPorAlias("AliasNoExiste"); + }); + } + + @Test + void obtenerMiembroPorAlias_cuandoExiste_retornaMiembro() { + Ministerio ministerio = new Ministerio(1, "Ministerio de Defensa", 120000, 6000); + Miembro miembro1 = new Miembro(1, "23451596F", "James", "Logan", "Lobezno", ministerio); + + fakeDAO.data.add(miembro1); + + Miembro resultado = miembroService.obtenerMiembroPorAlias("Lobezno"); + + assertNotNull(resultado); + assertEquals("James", resultado.getNombre()); + assertEquals("Lobezno", resultado.getAlias()); + } + + @Test + void obtenerMiembroPorAlias_cuandoAliasEsNull_manejaCorrectamente() { + Ministerio ministerio = new Ministerio(2, "Ministerio de Economía", 375000, 38000); + Miembro miembro1 = new Miembro(3, "36974641B", "Tío", "Gilito", null, ministerio); + + fakeDAO.data.add(miembro1); + + // Buscar un alias null debería lanzar excepción + assertThrows(MiembroNoEncontradoException.class, () -> { + miembroService.obtenerMiembroPorAlias(null); + }); + } + + // ========================= + // FakeMiembroDAO + // ========================= + + static class FakeMiembroDAO implements IMiembroDAO { + + private List data = new ArrayList<>(); + + @Override + public List obtenerListaMiembros() { + return new ArrayList<>(data); + } + + @Override + public Miembro obtenerMiembroPorNombre(String nombre) { + return data.stream() + .filter(m -> m.getNombre().equals(nombre)) + .findFirst() + .orElse(null); + } + + @Override + public Miembro obtenerMiembroPorAlias(String alias) { + return data.stream() + .filter(m -> { + String miembroAlias = m.getAlias(); + return miembroAlias != null && miembroAlias.equals(alias); + }) + .findFirst() + .orElse(null); + } + + } + +} diff --git a/src/test/java/org/lapaloma/hogwarts/service/CasaServiceTest.java b/src/test/java/org/lapaloma/examen/aaee/service/MinisterioServiceTest.java similarity index 86% rename from src/test/java/org/lapaloma/hogwarts/service/CasaServiceTest.java rename to src/test/java/org/lapaloma/examen/aaee/service/MinisterioServiceTest.java index 8adaccb..29f5c5f 100644 --- a/src/test/java/org/lapaloma/hogwarts/service/CasaServiceTest.java +++ b/src/test/java/org/lapaloma/examen/aaee/service/MinisterioServiceTest.java @@ -1,4 +1,4 @@ -package org.lapaloma.hogwarts.service; +package org.lapaloma.examen.aaee.service; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -9,11 +9,11 @@ import java.util.List; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.lapaloma.gobierno.dao.IMinisterioDAO; -import org.lapaloma.gobierno.service.MinisterioService; -import org.lapaloma.gobierno.vo.Ministerio; +import org.lapaloma.examen.aaee.dao.IMinisterioDAO; +import org.lapaloma.examen.aaee.service.MinisterioService; +import org.lapaloma.examen.aaee.vo.Ministerio; -class CasaServiceTest { +class MinisterioServiceTest { private MinisterioService ministerioService; private FakeMinisterioDAO fakeDAO;