Commit 967b9a2f by María Hidalgo

Código actualizado

parent 042aa73e
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>es.ujaen.dae</groupId>
<artifactId>carpooling-dae</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>es.ujaen.dae</groupId>
<artifactId>carpooling-dae</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<version>3.1.4</version>
</parent>
<dependencies>
......@@ -24,32 +23,33 @@
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
<scope>runtime</scope>
</dependency>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<scope>test</scope>
</dependency>
<dependency>
......@@ -57,37 +57,15 @@
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>16</source>
<target>16</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package es.ujaen.dae.carpoolingdae;
package es.ujaen.dae.carpoolingdae.app;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
......
......@@ -4,13 +4,13 @@ import java.io.Serializable;
import java.time.LocalDate;
import java.util.ArrayList;
import javax.validation.Valid;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Past;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Past;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.util.List;
......@@ -18,14 +18,15 @@ import es.ujaen.dae.carpoolingdae.excepciones.NoAceptaConductor;
import es.ujaen.dae.carpoolingdae.utils.CodificadorMd5;
import es.ujaen.dae.carpoolingdae.utils.ExprReg;
import lombok.Data;
import lombok.NoArgsConstructor;
//import lombok.Data;
//import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
/**
* Usuario a la app de carpooling
......@@ -33,8 +34,8 @@ import javax.persistence.ManyToOne;
* @author maria
*/
@Data
@NoArgsConstructor
//@NoArgsConstructor@Data
@Entity
public class Usuario implements Serializable {
......@@ -109,7 +110,7 @@ public class Usuario implements Serializable {
*
* @param viaje
*/
public void agregarViajeComoConductor(@NotNull @Valid Viaje viaje) {
public void agregarViajeComoConductor(@NotNull Viaje viaje) {
// Agregar el viaje a la lista de viajes del usuario como conductor
viajesComoConductor.add(viaje);
}
......@@ -122,8 +123,8 @@ public class Usuario implements Serializable {
* @param pasajero que es aceptado en el viaje
*/
public void aceptarPasajero(@NotNull @Valid Usuario conductor, @NotNull @Valid Viaje viaje,
@NotNull @Valid Usuario pasajero) {
public void aceptarPasajero(@NotNull Usuario conductor, @NotNull Viaje viaje,
@NotNull Usuario pasajero) {
// Verifica si el viaje está en la lista de viajes del conductor
if (!viajesComoConductor.contains(viaje)) {
throw new NoAceptaConductor();
......
......@@ -4,24 +4,22 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Past;
import es.ujaen.dae.carpoolingdae.excepciones.PlazaNoDisponible;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
import es.ujaen.dae.carpoolingdae.excepciones.PlazaNoDisponible;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.OneToMany;
import jakarta.validation.constraints.Past;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
//@Data
//@NoArgsConstructor
@Entity
public class Viaje {
......@@ -49,12 +47,12 @@ public class Viaje {
// Lista de usuarios que solicitan unirse a un viaje
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "solicitantes_viaje")
List<Usuario> usuariosSolicitantes;
public List<Usuario> usuariosSolicitantes;
// Lista de usuarios que son confirmados en un viaje
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "confirmados_viaje")
List<Usuario> usuariosConfirmados;
public List<Usuario> usuariosConfirmados;
public Viaje(int id, String destino, String origen, LocalDateTime fechaHora, int plazasDisponibles,
Double precioAsiento) {
......@@ -82,12 +80,16 @@ public class Viaje {
return fechaHora;
}
public int getPlazas() {
public int getPlazasDisponibles() {
return plazasDisponibles;
}
public void setPlazasDisponibles(int plazasDisponibles) {
this.plazasDisponibles = plazasDisponibles;
}
public void enviarSolicitudParaSerPasajero(@NotNull @Valid Viaje viaje, @NotNull @Valid Usuario pasajero) {
if (!usuariosSolicitantes.contains(pasajero) && getPlazas() > 0) { // Sino quedan plazas no puede solicitar
public void enviarSolicitudParaSerPasajero(@NotNull Viaje viaje, @NotNull Usuario pasajero) {
if (!usuariosSolicitantes.contains(pasajero) && getPlazasDisponibles
() > 0) { // Sino quedan plazas no puede solicitar
// unirse
usuariosSolicitantes.add(pasajero);
} else {
......@@ -95,7 +97,7 @@ public class Viaje {
}
}
public void confirmarPasajero(@NotNull @Valid Usuario pasajero, @NotNull @Valid Usuario conductor) {
public void confirmarPasajero(@NotNull Usuario pasajero, @NotNull Usuario conductor) {
// Verificar si el pasajero está en la lista de solicitantes
if (usuariosSolicitantes.contains(pasajero)) {
// Mover al pasajero de la lista de solicitantes a la lista de confirmados
......
......@@ -2,11 +2,12 @@ package es.ujaen.dae.carpoolingdae.repositorios;
import java.util.Optional;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.transaction.annotation.Transactional;
import es.ujaen.dae.carpoolingdae.entidades.Usuario;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Propagation;
......
......@@ -5,9 +5,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.stereotype.Repository;
......@@ -15,6 +12,9 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import es.ujaen.dae.carpoolingdae.entidades.Viaje;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.persistence.Query;
import java.util.logging.Level;
import java.util.logging.Logger;
......
package es.ujaen.dae.carpoolingdae.servicios;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
//import javax.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.ArrayList;
......@@ -42,7 +42,7 @@ public class SistemaCarpooling {
* @param usuario el usuario a dar de alta
*/
public void altaUsuario(@NotNull @Valid Usuario usuario) {
public void altaUsuario(@NotNull Usuario usuario) {
if (repositorioUsuarios.buscar(usuario.getDni()).isPresent()) {
throw new UsuarioYaRegistrado();
}
......@@ -68,7 +68,7 @@ public class SistemaCarpooling {
return usuarioLogin;
}
public void agregarViaje(@NotNull @Valid Usuario conductor, @NotNull @Valid Viaje viaje) {
public void agregarViaje(@NotNull Usuario conductor, @NotNull Viaje viaje) {
// Llamar a la función en Usuario para agregar el viaje como conductor
conductor.agregarViajeComoConductor(viaje);
......@@ -108,14 +108,14 @@ public class SistemaCarpooling {
*
* @param viaje al que se envía la solicitud
*/
public void enviarSolicitudViaje(@NotNull @Valid Viaje viaje, @NotNull @Valid Usuario pasajero) {
public void enviarSolicitudViaje(@NotNull Viaje viaje, @NotNull Usuario pasajero) {
// Llamar a la función en viaje para enviar la solicitud
viaje.enviarSolicitudParaSerPasajero(viaje, pasajero);
repositorioViajes.actualizarViajes(viaje);
}
public void aceptarPasajeroViaje(@NotNull @Valid Viaje viaje, @NotNull @Valid Usuario pasajero,
@NotNull @Valid Usuario conductor) {
public void aceptarPasajeroViaje(@NotNull Viaje viaje, @NotNull Usuario pasajero,
@NotNull Usuario conductor) {
viaje.confirmarPasajero(pasajero, conductor);
repositorioViajes.actualizarViajes(viaje);
......
......@@ -5,12 +5,14 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import java.time.LocalDate;
import java.time.LocalDateTime;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validation;
import jakarta.validation.Validator;
import org.assertj.core.api.Assertions;
import java.util.Set;
......
......@@ -8,9 +8,6 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
......@@ -19,6 +16,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import es.ujaen.dae.carpoolingdae.excepciones.PlazaNoDisponible;
import es.ujaen.dae.carpoolingdae.servicios.SistemaCarpooling;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validation;
import jakarta.validation.Validator;
public class ViajeTest {
@Autowired
......@@ -96,7 +96,7 @@ public class ViajeTest {
"123456789",
"conductor@example.com",
"clave");
viaje.getUsuariosSolicitantes().add(pasajero);
viaje.usuariosSolicitantes.add(pasajero);
viaje.confirmarPasajero(pasajero, conductor);
assertTrue(viaje.usuariosConfirmados.contains(pasajero));
assertFalse(viaje.usuariosSolicitantes.contains(pasajero));
......@@ -143,7 +143,7 @@ public class ViajeTest {
"conductor@example.com",
"clave");
viaje.setPlazasDisponibles(0);
viaje.getUsuariosSolicitantes().add(pasajero);
viaje.usuariosSolicitantes.add(pasajero);
assertThrows(PlazaNoDisponible.class, () -> viaje.confirmarPasajero(pasajero, conductor));
}
}
......@@ -18,15 +18,15 @@ import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.annotation.DirtiesContext.MethodMode;
import org.springframework.test.context.ActiveProfiles;
import javax.validation.ConstraintViolationException;
import es.ujaen.dae.carpoolingdae.entidades.Usuario;
//import es.ujaen.dae.carpoolingdae.utils.CodificadorMd5;
import es.ujaen.dae.carpoolingdae.entidades.Viaje;
import jakarta.validation.ConstraintViolationException;
//@Disabled
@SpringBootTest(classes = es.ujaen.dae.carpoolingdae.CarpoolingDaeApplication.class)
@SpringBootTest(classes = es.ujaen.dae.carpoolingdae.app.CarpoolingDaeApplication.class)
@ActiveProfiles(profiles = { "test" })
public class SistemaCarpoolingTest {
......@@ -189,7 +189,7 @@ public class SistemaCarpoolingTest {
sistemaCarpooling.altaUsuario(pasajero);
sistemaCarpooling.agregarViaje(conductor, viaje);
sistemaCarpooling.enviarSolicitudViaje(viaje, pasajero);
assertTrue(viaje.getUsuariosSolicitantes().contains(pasajero));
assertTrue(viaje.usuariosSolicitantes.contains(pasajero));
}
......@@ -229,6 +229,6 @@ public class SistemaCarpoolingTest {
sistemaCarpooling.agregarViaje(conductor, viaje);
sistemaCarpooling.enviarSolicitudViaje(viaje, pasajero);
sistemaCarpooling.aceptarPasajeroViaje(viaje, pasajero, conductor);
assertTrue(viaje.getUsuariosConfirmados().contains(pasajero));
assertTrue(viaje.usuariosConfirmados.contains(pasajero));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment