Introducimos cambios en los tests para depurar la práctica

parent 86a7eeeb
......@@ -63,6 +63,16 @@
<artifactId>jakarta.validation-api</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>3.10.8</version>
</dependency>
</dependencies>
......
......@@ -14,7 +14,6 @@ import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.*;
import static com.carpooling.carpoolingaoraha.entidades.Rol.*;
enum Rol {
CONDUCTOR, PASAJERO, AMBOS
......@@ -23,6 +22,9 @@ enum Rol {
@Table (name = "usuarios")
public class Usuario {
public enum Rol {
CONDUCTOR, PASAJERO, AMBOS
}
@Transient
private SistemaCarPooling sistemaCarPooling;
......@@ -276,7 +278,7 @@ public class Usuario {
}
public boolean solicitarViaje(int idReserva, Rol rol) {
if (rol == PASAJERO || rol == AMBOS) {
if (rol == Rol.PASAJERO || rol == Rol.AMBOS) {
for (Reserva reserva : sistemaCarPooling.getReservas()) {
if (idReserva == reserva.getIdReserva() && !reserva.getReservaConcluida()) {
// Verificar si ya hay una solicitud pendiente para esta reserva
......
......@@ -6,6 +6,7 @@ import com.carpooling.carpoolingaoraha.entidades.Usuario;
import com.carpooling.carpoolingaoraha.entidades.Viaje;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.jpa.repository.JpaRepository;
......
# Configuración de la base de datos para pruebas en MySQL
spring.datasource.url=jdbc:mysql://localhost:3306/aha00026aor00039
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=create-drop
# Otros ajustes de configuración específicos para pruebas
# ...
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">
<cache name="clientes"
maxElementsInMemory="100"
eternal="false"
overflowToDisk="false" />
<cache name="claves"
maxElementsInMemory="100"
eternal="false"
timeToIdleSeconds="600"
timeToLiveSeconds="600"
overflowToDisk="false" />
</ehcache>
package com.carpooling.carpoolingaoraha;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class CarPoolingAorAhaApplicationTests {
@Test
void contextLoads() {
}
}
package com.carpooling.carpoolingaoraha.entidades;
import java.util.ArrayList;
import static org.junit.jupiter.api.Assertions.*;
import java.util.Date;
import org.junit.Before;
import org.junit.jupiter.api.Test;
public class ReservaTest {
private Reserva reserva;
private Usuario conductor;
@Before
public void setUp() {
conductor = new Usuario("Conductor", "ApellidoConductor", new Date(), "12345678A", 123456789, "conductor@example.com", "clave", Rol.CONDUCTOR);
reserva = new Reserva(conductor, "Origen", "Destino", new Date(), 3, 20);
}
@Test
public void testAnadirPasajeros() {
setUp();
reserva.anadirPasajeros("87654321B", reserva.getIdReserva());
ArrayList<String> pasajeros = reserva.getPasajeros();
assertTrue(pasajeros.contains("87654321B"));
}
@Test
public void testEsViajero() {
setUp();
reserva.anadirPasajeros("87654321B", reserva.getIdReserva());
assertTrue(reserva.esViajero("87654321B"));
assertFalse(reserva.esViajero("99999999C"));
}
}
package com.carpooling.carpoolingaoraha.entidades;
import org.junit.Before;
import org.junit.Test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import static org.junit.Assert.*;
public class SistemaCarPoolingTest {
private SistemaCarPooling sistema;
@Before
public void setUp() {
sistema = new SistemaCarPooling();
}
@Test
public void testAddViaje() throws ParseException {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date fecha = dateFormat.parse("2023-10-07");
Viaje viaje = new Viaje("Origen", "Destino", fecha, 3, 10, 5);
sistema.addViaje(viaje);
assertTrue(sistema.getViajes().contains(viaje));
}
@Test
public void testAddReserva() throws ParseException {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date fecha = dateFormat.parse("2023-10-07");
Usuario usuario = new Usuario("usuario", "usuario", fecha, "78162640S", 957634276, "aor00039@red.ujaen.es", "12345", Rol.CONDUCTOR);
Reserva reserva = new Reserva(usuario, "origen", "destino", fecha, 3, 10);
sistema.addReserva(reserva);
assertTrue(sistema.getReservas().contains(reserva));
}
@Test
public void testLoginSuccess() throws ParseException {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date fecha = dateFormat.parse("2023-10-07");
Usuario usuario = new Usuario("usuario", "usuario", fecha, "78162640S", 957634276, "aor00039@red.ujaen.es", "12345", Rol.CONDUCTOR);
sistema.getUsuarios().add(usuario);
assertTrue(sistema.login("aor00039@red.ujaen.es", "12345"));
}
@Test
public void testLoginFailure() {
assertFalse(sistema.login("usuario2", "claveincorrecta"));
}
@Test
public void testGetNombre() {
assertEquals("Blablacar", sistema.getNombre());
}
@Test
public void testSetNombre() {
sistema.setNombre("NuevoNombre");
assertEquals("NuevoNombre", sistema.getNombre());
}
@Test
public void testGetUsuarios() {
assertNotNull(sistema.getUsuarios());
}
@Test
public void testGetViajes() {
assertNotNull(sistema.getViajes());
}
@Test
public void testGetReservas() {
assertNotNull(sistema.getReservas());
}
}
package com.carpooling.carpoolingaoraha.entidades;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
public class UsuarioTest {
@Test
public void testCambiarRol() {
Usuario usuario = new Usuario("Nombre", "Apellidos", new Date(), "12345678A", 123456789, "correo@example.com", "clave", Rol.CONDUCTOR);
assertEquals(Rol.CONDUCTOR, usuario.getRol());
usuario.cambiarRol();
assertEquals(Rol.PASAJERO, usuario.getRol());
usuario.cambiarRol();
assertEquals(Rol.CONDUCTOR, usuario.getRol());
}
@Test
public void testOfrecerViaje() {
Usuario conductor = new Usuario("Conductor", "ApellidoConductor", new Date(), "12345678A", 123456789, "conductor@example.com", "clave", Rol.CONDUCTOR);
Usuario pasajero = new Usuario("Pasajero", "ApellidoPasajero", new Date(), "87654321B", 987654321, "pasajero@example.com", "clave", Rol.PASAJERO);
assertTrue(conductor.ofrecerViaje("Origen", "Destino", new Date(), 3, 20));
assertFalse(pasajero.ofrecerViaje("Origen", "Destino", new Date(), 2, 15));
}
@Test
public void testAsignarPuntuacion() {
Usuario conductor = new Usuario("Conductor", "ApellidoConductor", new Date(), "12345678A", 123456789, "conductor@example.com", "clave", Rol.CONDUCTOR);
Usuario pasajero = new Usuario("Pasajero", "ApellidoPasajero", new Date(), "87654321B", 987654321, "pasajero@example.com", "clave", Rol.PASAJERO);
assertTrue(conductor.asignarPuntuacion(1, "87654321B", 4));
assertTrue(pasajero.asignarPuntuacion(1, "12345678A", 4));
}
@Test
public void testBuscarViaje() {
// Inicializar un usuario de ejemplo
Usuario usuario = new Usuario("Nombre", "Apellidos", new Date(), "123456789", 123456789, "usuario@example.com", "clave", Rol.PASAJERO);
// Inicializar la lista de viajes con datos de ejemplo
List<Viaje> todosLosViajes = new ArrayList<>();
Viaje viaje1 = new Viaje("Origen1", "Destino1", new Date(), 3, 20, 5);
Viaje viaje2 = new Viaje("Origen2", "Destino2", new Date(), 2, 15, 5);
Viaje viaje3 = new Viaje("Origen3", "Destino3", new Date(), 1, 10, 5);
todosLosViajes.add(viaje1);
todosLosViajes.add(viaje2);
todosLosViajes.add(viaje3);
// Ejecutar la función buscarViaje con datos de ejemplo
List<Viaje> viajesDisponibles = usuario.buscarViaje("Origen1", "Destino1", new Date(), Rol.PASAJERO, todosLosViajes);
// Verificar que la lista de viajes disponibles no esté vacía
assertEquals(1, viajesDisponibles.size());
// Verificar que el viaje encontrado coincida con los criterios de búsqueda
Viaje viajeEncontrado = viajesDisponibles.get(0);
assertEquals("Origen1", viajeEncontrado.getOrigen());
assertEquals("Destino1", viajeEncontrado.getDestino());
}
}
package com.carpooling.carpoolingaoraha.entidades;
import org.junit.Before;
import org.junit.Test;
import java.util.Date;
import static org.junit.Assert.*;
public class ViajeTest {
private Viaje viaje;
@Before
public void testConstructor() {
viaje = new Viaje("Origen", "Destino", new Date(), 3, 20, 5);
}
@Test
public void testGetOrigen() {
assertEquals("Origen", viaje.getOrigen());
}
@Test
public void testSetOrigen() {
viaje.setOrigen("NuevoOrigen");
assertEquals("NuevoOrigen", viaje.getOrigen());
}
@Test
public void testGetDestino() {
assertEquals("Destino", viaje.getDestino());
}
@Test
public void testSetDestino() {
viaje.setDestino("NuevoDestino");
assertEquals("NuevoDestino", viaje.getDestino());
}
@Test
public void testGetFechaSalida() {
assertNotNull(viaje.getFechaSalida());
}
@Test
public void testSetFechaSalida() {
Date nuevaFecha = new Date();
viaje.setFechaSalida(nuevaFecha);
assertEquals(nuevaFecha, viaje.getFechaSalida());
}
@Test
public void testGetnAsientos() {
assertEquals(3, viaje.getnAsientos());
}
@Test
public void testSetnAsientos() {
viaje.setnAsientos(4);
assertEquals(4, viaje.getnAsientos());
}
@Test
public void testGetPrecioAsiento() {
assertEquals(20, viaje.getPrecioAsiento());
}
@Test
public void testSetPrecioAsiento() {
viaje.setPrecioAsiento(25);
assertEquals(25, viaje.getPrecioAsiento());
}
}
package com.carpooling.carpoolingaoraha.repositorios;
import com.carpooling.carpoolingaoraha.entidades.Reserva;
import org.springframework.transaction.annotation.Transactional;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Propagation;
@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
public class ReservaRepositoryTest {
@Autowired
private ReservaRepository repositorio;
@Test
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void testInsertReserva(){
Reserva reserva = new Reserva();
reserva.setNumPasajeros(2);
reserva.setIdReserva(1);
repositorio.save(reserva);
Reserva reservaGuardada = repositorio.findByIdReserva(1);
Assert.assertNotNull(reservaGuardada);
Assert.assertEquals(2,reservaGuardada.getNumPasajeros());
Assert.assertEquals(1,reservaGuardada.getIdReserva());
}
}
package com.carpooling.carpoolingaoraha.repositorios;
import com.carpooling.carpoolingaoraha.entidades.Usuario;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.Optional;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
public class UsuarioRepositoryTest {
@Autowired
private UsuarioRepository repositorio;
@Test
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void testInsertUsuario(){
Usuario usuario = new Usuario();
usuario.setNombre("Fran");
usuario.setDNI("45678900E");
repositorio.guardar(usuario);
Optional<Usuario> usuarioGuardado = repositorio.buscar("45678900E");
Assert.assertNotNull(usuarioGuardado);
Assert.assertEquals("Fran", usuarioGuardado.get().getNombre());
Assert.assertEquals("45678900E", usuarioGuardado.get().getDNI());
}
}
package com.carpooling.carpoolingaoraha.repositorios;
import com.carpooling.carpoolingaoraha.entidades.Usuario;
import com.carpooling.carpoolingaoraha.entidades.Viaje;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.Optional;
@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
public class ViajeRepositoryTest {
@Autowired
private ViajeRepository repository;
@Test
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void testInsertViaje(){
Viaje viaje = new Viaje();
viaje.setDestino("Canarias");
int idViaje = 1;
viaje.setIdViaje(idViaje);
repository.guardar(viaje);
Optional<Viaje> viajeGuardado = repository.buscar(String.valueOf(idViaje));
Assert.assertNotNull(viajeGuardado);
Assert.assertEquals(idViaje, viajeGuardado.get().getIdViaje());
Assert.assertEquals("Canarias", viajeGuardado.get().getDestino());
}
}
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