Commit eaa269dc by Antonio Rueda

Creación de hoteles y test correspondiente

parent fb90ff21
......@@ -4,9 +4,11 @@ package es.ujaen.dae.reservahoteles.rest;
import es.ujaen.dae.reservahoteles.entidades.Usuario;
import es.ujaen.dae.reservahoteles.excepciones.UsuarioNoRegistrado;
import es.ujaen.dae.reservahoteles.excepciones.UsuarioYaRegistrado;
import es.ujaen.dae.reservahoteles.rest.dto.DHotel;
import es.ujaen.dae.reservahoteles.rest.dto.DUsuario;
import es.ujaen.dae.reservahoteles.rest.dto.Mapeador;
import es.ujaen.dae.reservahoteles.servicios.ServicioReservas;
import jakarta.annotation.PostConstruct;
import jakarta.validation.ConstraintViolationException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
......@@ -34,6 +36,13 @@ public class ControladorReservas {
@Autowired
ServicioReservas servicioReservas;
Usuario direccion;
@PostConstruct
void loginDireccion() {
direccion = servicioReservas.login("direccion@hotelxyz.es", "SeCrEtO").get();
}
// Definir un mapeado global para cualquier excepción de validación de beans
@ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY)
@ExceptionHandler(ConstraintViolationException.class)
......@@ -61,4 +70,11 @@ public class ControladorReservas {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
}
}
@PostMapping("/hoteles")
public ResponseEntity<Void> nuevoHotel(@RequestBody DHotel hotel) {
servicioReservas.nuevoHotel(direccion, mapeador.entidad(hotel));
return ResponseEntity.status(HttpStatus.CREATED).build();
}
}
package es.ujaen.dae.reservahoteles.rest;
import es.ujaen.dae.reservahoteles.entidades.Hotel;
import es.ujaen.dae.reservahoteles.rest.dto.DHotel;
import es.ujaen.dae.reservahoteles.rest.dto.DUsuario;
import jakarta.annotation.PostConstruct;
import org.assertj.core.api.Assertions;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
......@@ -48,8 +51,22 @@ public class TestControladorReservas {
usuario,
Void.class
);
assertThat(respuesta.getStatusCode()).isEqualTo(HttpStatus.UNPROCESSABLE_ENTITY);
Assertions.assertThat(respuesta.getStatusCode()).isEqualTo(HttpStatus.UNPROCESSABLE_ENTITY);
var usuario2 = new DUsuario("Pedro", "Jaén Jaén", "611301114", "pjaen@gmail.com", "miClAvE");
respuesta = restTemplate.postForEntity(
"/usuarios",
usuario2,
Void.class
);
assertThat(respuesta.getStatusCode()).isEqualTo(HttpStatus.CREATED);
respuesta = restTemplate.postForEntity(
"/usuarios",
usuario2,
Void.class
);
assertThat(respuesta.getStatusCode()).isEqualTo(HttpStatus.CONFLICT);
}
@Test
......@@ -61,7 +78,7 @@ public class TestControladorReservas {
usuario,
Void.class
);
Assertions.assertThat(respuesta.getStatusCode()).isEqualTo(HttpStatus.CREATED);
assertThat(respuesta.getStatusCode()).isEqualTo(HttpStatus.CREATED);
var respuestaLogin = restTemplate.getForEntity(
"/usuarios/{email}?clave={clave}",
......@@ -70,7 +87,7 @@ public class TestControladorReservas {
"miClAvE"
);
Assertions.assertThat(respuestaLogin.getStatusCode()).isEqualTo(HttpStatus.UNAUTHORIZED);
assertThat(respuestaLogin.getStatusCode()).isEqualTo(HttpStatus.UNAUTHORIZED);
respuestaLogin = restTemplate.getForEntity(
"/usuarios/{email}?clave={clave}",
......@@ -79,9 +96,8 @@ public class TestControladorReservas {
"xyx"
);
Assertions.assertThat(respuestaLogin.getStatusCode()).isEqualTo(HttpStatus.UNAUTHORIZED);
assertThat(respuestaLogin.getStatusCode()).isEqualTo(HttpStatus.UNAUTHORIZED);
respuestaLogin = restTemplate.getForEntity(
"/usuarios/{email}?clave={clave}",
DUsuario.class,
......@@ -89,7 +105,41 @@ public class TestControladorReservas {
usuario.clave()
);
Assertions.assertThat(respuestaLogin.getStatusCode()).isEqualTo(HttpStatus.OK);
Assertions.assertThat(respuestaLogin.getBody().nombre()).isEqualTo(usuario.nombre());
assertThat(respuestaLogin.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(respuestaLogin.getBody()).isEqualTo(usuario);
}
@Test
@DirtiesContext
void testBuscarHotel() {
var hotel1 = new DHotel(0, "Gran Hotel Almería", "Almería", "Almería", "04001", 25, 50, 100, 180);
var hotel2 = new DHotel(0, "Hotel Infanta Cristina", "Jaén", "Jaén", "23009", 30, 60, 120, 200);
var respuestaLogin = restTemplate.getForEntity(
"/usuarios/{email}?clave={clave}",
DUsuario.class,
"direccion@hotelxyz.es",
"SeCrEtO"
);
assertThat(respuestaLogin.getStatusCode()).isEqualTo(HttpStatus.OK);
var respuesta = restTemplate.postForEntity(
"/hoteles",
hotel1,
DHotel.class
);
assertThat(respuesta.getStatusCode()).isEqualTo(HttpStatus.CREATED);
respuesta = restTemplate.postForEntity(
"/hoteles",
hotel2,
DHotel.class
);
assertThat(respuesta.getStatusCode()).isEqualTo(HttpStatus.CREATED);
// List<Hotel> hoteles = servicio.buscarHotel("gran hotel", " almeria");
// assertThat(hoteles).hasSize(1);
// assertThat(hoteles.get(0).id()).isEqualTo(1);
}
}
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