Commit 9e490125 by Antonio Rueda

Creación de paquetes de tests y clase para test de integración del

servicio.
parent e29bfb94
......@@ -21,3 +21,4 @@ error-screenshots/
webpack.generated.js
/etc/
/h2db/
/nbproject/
......@@ -10,11 +10,13 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.TreeMap;
import org.springframework.stereotype.Service;
/**
*
* @author ajrueda
*/
@Service
public class ServicioReservas {
Map<Integer, Hotel> hoteles;
Map<String, Cliente> clientes;
......@@ -36,8 +38,12 @@ public class ServicioReservas {
}
public Optional<Cliente> login(String email, String clave) {
return Optional.ofNullable(clientes.get(email))
.filter(cliente -> cliente.clave().equals(clave));
// Equivalente al código de abajo pero más seguro y compacto
// return Optional.ofNullable(clientes.get(email))
// .filter(cliente -> cliente.clave().equals(clave));
Cliente cliente = clientes.get(email);
return (cliente != null && cliente.clave().equals(clave)) ? Optional.of(cliente): Optional.empty();
}
public List<Hotel> buscarPorLocalidad(String localidad,
......
package es.ujaen.dae.reservahoteles.util;
import java.text.Normalizer;
/**
* Utilidades para comparación flexible de cadenas
* @author ajrueda
*/
public class UtilidadesCadenas {
/**
* Normaliza una cadena pasando a minúsculas, quitando espacios al principio,
* final y duplicados y eliminando acentos.
* @param cadena la cadena a normalizar.
* @return
*/
public static String normalizar(String cadena) {
return Normalizer.normalize(cadena, Normalizer.Form.NFD)
.toLowerCase()
.replaceAll("[^a-z\\s]","")
.replaceAll(" +", " ")
.trim();
}
}
package es.ujaen.dae.reservahoteles.servicios;
import es.ujaen.dae.reservahoteles.entidades.Cliente;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.DirtiesContext;
/**
* Test de integración del servicio principal del sistema
* @author ajrueda
*/
@SpringBootTest(classes = es.ujaen.dae.reservahoteles.app.ReservaHoteles.class)
public class TestServicioReservas {
@Autowired
ServicioReservas servicio;
@Test
@DirtiesContext
void testLoginCliente() {
var cliente = new Cliente("Pedro", "Jaén Jaén", "611203025", "pjaen@gmail.com", "miClAvE");
servicio.nuevoCliente(cliente);
Assertions.assertThat(servicio.login("ppp@gmail.com", "miClAvE")).isEmpty();
Assertions.assertThat(servicio.login("pjaen@gmail.com", "xyz")).isEmpty();
Assertions.assertThat(servicio.login("pjaen@gmail.com", "miClAvE")).hasValueSatisfying(c -> c.email().equals(cliente.email()));
}
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package es.ujaen.dae.reservahoteles.util;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
/**
*
* @author ajrueda
*/
public class TestUtilidadesCadenas {
@Test
void testNormalizar() {
Assertions.assertThat(UtilidadesCadenas.normalizar(" áÁaaa ´ OO_OO ")).isEqualTo("aaaaa oooo");
}
}
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