Skip to content

Commit

Permalink
Pequeños cambios
Browse files Browse the repository at this point in the history
  • Loading branch information
domingogallardo committed Sep 11, 2023
1 parent 51b1e36 commit c69550f
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 24 deletions.
6 changes: 6 additions & 0 deletions src/main/java/madstodolist/model/Tarea.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ public Tarea(Usuario usuario, String titulo) {
setUsuario(usuario); // Esto añadirá la tarea a la lista de tareas del usuario
}

// Getters y setters básicos

public Long getId() {
return id;
}
Expand All @@ -51,10 +53,14 @@ public void setTitulo(String titulo) {
this.titulo = titulo;
}

// Getters y setters de la relación muchos-a-uno con Usuario

public Usuario getUsuario() {
return usuario;
}

// Método para establecer la relación con el usuario

public void setUsuario(Usuario usuario) {
// Comprueba si el usuario ya está establecido
if(this.usuario != usuario) {
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/madstodolist/model/Usuario.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ public Usuario(String email) {
this.email = email;
}

// Getters y setters atributos básicos

public Long getId() {
return id;
}
Expand Down Expand Up @@ -79,10 +81,13 @@ public void setFechaNacimiento(Date fechaNacimiento) {
this.fechaNacimiento = fechaNacimiento;
}

// Getters y setters de la relación

public Set<Tarea> getTareas() {
return tareas;
}

// Método helper para añadir una tarea a la lista y establecer la relación inversa
public void addTarea(Tarea tarea) {
// Si la tarea ya está en la lista, no la añadimos
if (tareas.contains(tarea)) return;
Expand Down
46 changes: 25 additions & 21 deletions src/test/java/madstodolist/controller/TareaWebTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
import org.springframework.test.context.jdbc.Sql;
import org.springframework.test.web.servlet.MockMvc;

import java.util.HashMap;
import java.util.Map;

import static org.hamcrest.Matchers.*;
import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
Expand All @@ -37,32 +40,33 @@ public class TareaWebTest {
@MockBean
private ManagerUserSession managerUserSession;

class DosIds {
Long usuarioId;
Long tareaId;
public DosIds(Long usuarioId, Long tareaId) {
this.usuarioId = usuarioId;
this.tareaId = tareaId;
}
}

// Método para inicializar los datos de prueba en la BD
// Devuelve una pareja de identificadores del usuario y la primera tarea añadida
DosIds addUsuarioTareasBD() {
// Devuelve un mapa con los identificadores del usuario y de la primera tarea añadida

Map<String, Long> addUsuarioTareasBD() {
// Añadimos un usuario a la base de datos
UsuarioData usuario = new UsuarioData();
usuario.setEmail("user@ua");
usuario.setPassword("123");
usuario = usuarioService.registrar(usuario);

// Y añadimos dos tareas asociadas a ese usuario
TareaData tarea1 = tareaService.nuevaTareaUsuario(usuario.getId(), "Lavar coche");
tareaService.nuevaTareaUsuario(usuario.getId(), "Renovar DNI");
return new DosIds(usuario.getId(), tarea1.getId());

// Devolvemos los ids del usuario y de la primera tarea añadida
Map<String, Long> ids = new HashMap<>();
ids.put("usuarioId", usuario.getId());
ids.put("tareaId", tarea1.getId());
return ids;

}

@Test
public void listaTareas() throws Exception {
// GIVEN
// Un usuario con dos tareas en la BD
Long usuarioId = addUsuarioTareasBD().usuarioId;
Long usuarioId = addUsuarioTareasBD().get("usuarioId");

// Moqueamos el método usuarioLogeado para que devuelva el usuario 1L,
// el mismo que se está usando en la petición. De esta forma evitamos
Expand All @@ -87,7 +91,7 @@ public void listaTareas() throws Exception {
public void getNuevaTareaDevuelveForm() throws Exception {
// GIVEN
// Un usuario con dos tareas en la BD
Long usuarioId = addUsuarioTareasBD().usuarioId;
Long usuarioId = addUsuarioTareasBD().get("usuarioId");

// Ver el comentario en el primer test
when(managerUserSession.usuarioLogeado()).thenReturn(usuarioId);
Expand All @@ -111,7 +115,7 @@ public void getNuevaTareaDevuelveForm() throws Exception {
public void postNuevaTareaDevuelveRedirectYAñadeTarea() throws Exception {
// GIVEN
// Un usuario con dos tareas en la BD
Long usuarioId = addUsuarioTareasBD().usuarioId;
Long usuarioId = addUsuarioTareasBD().get("usuarioId");

// Ver el comentario en el primer test
when(managerUserSession.usuarioLogeado()).thenReturn(usuarioId);
Expand Down Expand Up @@ -140,9 +144,9 @@ public void getNuevaTareaDevuelveForm() throws Exception {
public void deleteTareaDevuelveOKyBorraTarea() throws Exception {
// GIVEN
// Un usuario con dos tareas en la BD
DosIds dosIds = addUsuarioTareasBD();
Long usuarioId = dosIds.usuarioId;
Long tareaLavarCocheId = dosIds.tareaId;
Map<String, Long> ids = addUsuarioTareasBD();
Long usuarioId = ids.get("usuarioId");
Long tareaLavarCocheId = ids.get("tareaId");

// Ver el comentario en el primer test
when(managerUserSession.usuarioLogeado()).thenReturn(usuarioId);
Expand Down Expand Up @@ -170,9 +174,9 @@ public void deleteTareaDevuelveOKyBorraTarea() throws Exception {
public void editarTareaActualizaLaTarea() throws Exception {
// GIVEN
// Un usuario con dos tareas en la BD
DosIds dosIds = addUsuarioTareasBD();
Long usuarioId = dosIds.usuarioId;
Long tareaLavarCocheId = dosIds.tareaId;
Map<String, Long> ids = addUsuarioTareasBD();
Long usuarioId = ids.get("usuarioId");
Long tareaLavarCocheId = ids.get("tareaId");

// Ver el comentario en el primer test
when(managerUserSession.usuarioLogeado()).thenReturn(usuarioId);
Expand Down
8 changes: 7 additions & 1 deletion src/test/java/madstodolist/service/TareaServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,15 @@ Map<String, Long> addUsuarioTareasBD() {
UsuarioData usuario = new UsuarioData();
usuario.setEmail("user@ua");
usuario.setPassword("123");

// Añadimos un usuario a la base de datos
UsuarioData usuarioNuevo = usuarioService.registrar(usuario);

// Y añadimos dos tareas asociadas a ese usuario
TareaData tarea1 = tareaService.nuevaTareaUsuario(usuarioNuevo.getId(), "Lavar coche");
tareaService.nuevaTareaUsuario(usuarioNuevo.getId(), "Renovar DNI");

// Devolvemos los ids del usuario y de la primera tarea añadida
Map<String, Long> ids = new HashMap<>();
ids.put("usuarioId", usuarioNuevo.getId());
ids.put("tareaId", tarea1.getId());
Expand Down Expand Up @@ -93,7 +99,7 @@ public void testModificarTarea() {
Long tareaId = ids.get("tareaId");

// WHEN
// modificamos la tarea correspondiente a ese identificador,
// modificamos la tarea correspondiente al identificador,

tareaService.modificaTarea(tareaId, "Limpiar los cristales del coche");

Expand Down
4 changes: 2 additions & 2 deletions src/test/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ spring.datasource.url=jdbc:h2:mem:test
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=create
logging.level.org.hibernate.SQL=debug
# Es necesario definir el sql.init.mode a never para evitar
# que se carguen los datos de src/main/resources/data.sql
spring.sql.init.mode=never

# obligamos a que Hibernate inicialice los esquemas de datos
# https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.5-Release-Notes#sql-script-datasource-initialization
spring.jpa.defer-datasource-initialization=true

# Deshabilitamos Open EntityManager in View
# https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/html/data.html#data.sql.jpa-and-spring-data.open-entity-manager-in-view
# Ver tambien https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/orm/hibernate5/support/OpenSessionInViewInterceptor.html
Expand Down

0 comments on commit c69550f

Please sign in to comment.