Commit eaa269dc by Antonio Rueda

Creación de hoteles y test correspondiente

parent fb90ff21
...@@ -4,9 +4,11 @@ package es.ujaen.dae.reservahoteles.rest; ...@@ -4,9 +4,11 @@ package es.ujaen.dae.reservahoteles.rest;
import es.ujaen.dae.reservahoteles.entidades.Usuario; import es.ujaen.dae.reservahoteles.entidades.Usuario;
import es.ujaen.dae.reservahoteles.excepciones.UsuarioNoRegistrado; import es.ujaen.dae.reservahoteles.excepciones.UsuarioNoRegistrado;
import es.ujaen.dae.reservahoteles.excepciones.UsuarioYaRegistrado; 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.DUsuario;
import es.ujaen.dae.reservahoteles.rest.dto.Mapeador; import es.ujaen.dae.reservahoteles.rest.dto.Mapeador;
import es.ujaen.dae.reservahoteles.servicios.ServicioReservas; import es.ujaen.dae.reservahoteles.servicios.ServicioReservas;
import jakarta.annotation.PostConstruct;
import jakarta.validation.ConstraintViolationException; import jakarta.validation.ConstraintViolationException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
...@@ -34,6 +36,13 @@ public class ControladorReservas { ...@@ -34,6 +36,13 @@ public class ControladorReservas {
@Autowired @Autowired
ServicioReservas servicioReservas; 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 // Definir un mapeado global para cualquier excepción de validación de beans
@ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY)
@ExceptionHandler(ConstraintViolationException.class) @ExceptionHandler(ConstraintViolationException.class)
...@@ -61,4 +70,11 @@ public class ControladorReservas { ...@@ -61,4 +70,11 @@ public class ControladorReservas {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build(); 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; 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 es.ujaen.dae.reservahoteles.rest.dto.DUsuario;
import jakarta.annotation.PostConstruct; 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.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.boot.test.web.client.TestRestTemplate;
...@@ -48,8 +51,22 @@ public class TestControladorReservas { ...@@ -48,8 +51,22 @@ public class TestControladorReservas {
usuario, usuario,
Void.class 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 @Test
...@@ -61,7 +78,7 @@ public class TestControladorReservas { ...@@ -61,7 +78,7 @@ public class TestControladorReservas {
usuario, usuario,
Void.class Void.class
); );
Assertions.assertThat(respuesta.getStatusCode()).isEqualTo(HttpStatus.CREATED); assertThat(respuesta.getStatusCode()).isEqualTo(HttpStatus.CREATED);
var respuestaLogin = restTemplate.getForEntity( var respuestaLogin = restTemplate.getForEntity(
"/usuarios/{email}?clave={clave}", "/usuarios/{email}?clave={clave}",
...@@ -70,7 +87,7 @@ public class TestControladorReservas { ...@@ -70,7 +87,7 @@ public class TestControladorReservas {
"miClAvE" "miClAvE"
); );
Assertions.assertThat(respuestaLogin.getStatusCode()).isEqualTo(HttpStatus.UNAUTHORIZED); assertThat(respuestaLogin.getStatusCode()).isEqualTo(HttpStatus.UNAUTHORIZED);
respuestaLogin = restTemplate.getForEntity( respuestaLogin = restTemplate.getForEntity(
"/usuarios/{email}?clave={clave}", "/usuarios/{email}?clave={clave}",
...@@ -79,9 +96,8 @@ public class TestControladorReservas { ...@@ -79,9 +96,8 @@ public class TestControladorReservas {
"xyx" "xyx"
); );
Assertions.assertThat(respuestaLogin.getStatusCode()).isEqualTo(HttpStatus.UNAUTHORIZED); assertThat(respuestaLogin.getStatusCode()).isEqualTo(HttpStatus.UNAUTHORIZED);
respuestaLogin = restTemplate.getForEntity( respuestaLogin = restTemplate.getForEntity(
"/usuarios/{email}?clave={clave}", "/usuarios/{email}?clave={clave}",
DUsuario.class, DUsuario.class,
...@@ -89,7 +105,41 @@ public class TestControladorReservas { ...@@ -89,7 +105,41 @@ public class TestControladorReservas {
usuario.clave() usuario.clave()
); );
Assertions.assertThat(respuestaLogin.getStatusCode()).isEqualTo(HttpStatus.OK); assertThat(respuestaLogin.getStatusCode()).isEqualTo(HttpStatus.OK);
Assertions.assertThat(respuestaLogin.getBody().nombre()).isEqualTo(usuario.nombre()); 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