Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Antonio Rueda
/
reserva-hoteles
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
fb90ff21
authored
Nov 27, 2024
by
Antonio Rueda
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Testing de los primeros dos servicios del API Rest
parent
d0ee0162
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
98 additions
and
2 deletions
src/main/java/es/ujaen/dae/reservahoteles/rest/ControladorReservas.java
src/test/java/es/ujaen/dae/reservahoteles/rest/TestControladorReservas.java
src/main/java/es/ujaen/dae/reservahoteles/rest/ControladorReservas.java
View file @
fb90ff21
...
...
@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.PathVariable;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.ResponseStatus
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -47,11 +48,11 @@ public class ControladorReservas {
return
ResponseEntity
.
status
(
HttpStatus
.
CONFLICT
).
build
();
}
return
ResponseEntity
.
ok
(
).
build
();
return
ResponseEntity
.
status
(
HttpStatus
.
CREATED
).
build
();
}
@GetMapping
(
"/usuarios/{email}"
)
public
ResponseEntity
<
DUsuario
>
loginCliente
(
@PathVariable
String
email
,
@Request
Body
String
clave
)
{
public
ResponseEntity
<
DUsuario
>
loginCliente
(
@PathVariable
String
email
,
@Request
Param
String
clave
)
{
try
{
Usuario
usuario
=
servicioReservas
.
login
(
email
,
clave
).
orElseThrow
(
UsuarioNoRegistrado:
:
new
);
return
ResponseEntity
.
ok
(
mapeador
.
dto
(
usuario
));
...
...
src/test/java/es/ujaen/dae/reservahoteles/rest/TestControladorReservas.java
0 → 100644
View file @
fb90ff21
package
es
.
ujaen
.
dae
.
reservahoteles
.
rest
;
import
es.ujaen.dae.reservahoteles.rest.dto.DUsuario
;
import
jakarta.annotation.PostConstruct
;
import
org.assertj.core.api.Assertions
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.web.client.TestRestTemplate
;
import
org.springframework.boot.test.web.server.LocalServerPort
;
import
org.springframework.boot.web.client.RestTemplateBuilder
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.test.annotation.DirtiesContext
;
import
org.springframework.test.context.ActiveProfiles
;
/**
*
* @author ajrueda
*/
@SpringBootTest
(
classes
=
es
.
ujaen
.
dae
.
reservahoteles
.
app
.
ReservaHoteles
.
class
,
webEnvironment
=
SpringBootTest
.
WebEnvironment
.
RANDOM_PORT
)
@ActiveProfiles
(
profiles
=
{
"test"
})
public
class
TestControladorReservas
{
@LocalServerPort
int
localPort
;
TestRestTemplate
restTemplate
;
/**
* Crear un TestRestTemplate para las pruebas
*/
@PostConstruct
void
crearRestTemplateBuilder
()
{
var
restTemplateBuilder
=
new
RestTemplateBuilder
()
.
rootUri
(
"http://localhost:"
+
localPort
+
"/reservas"
);
restTemplate
=
new
TestRestTemplate
(
restTemplateBuilder
);
}
/**
* Intento de creación de un cliente inválido
*/
@Test
public
void
testNuevoClienteInvalido
()
{
// Test con teléfono e email inválidos
var
usuario
=
new
DUsuario
(
"Pedro"
,
"Jaén Jaén"
,
"611225"
,
"pjaengmail.com"
,
"miClAvE"
);
var
respuesta
=
restTemplate
.
postForEntity
(
"/usuarios"
,
usuario
,
Void
.
class
);
Assertions
.
assertThat
(
respuesta
.
getStatusCode
()).
isEqualTo
(
HttpStatus
.
UNPROCESSABLE_ENTITY
);
}
@Test
@DirtiesContext
void
testLoginCliente
()
{
var
usuario
=
new
DUsuario
(
"Pedro"
,
"Jaén Jaén"
,
"611203025"
,
"pjaen@gmail.com"
,
"miClAvE"
);
var
respuesta
=
restTemplate
.
postForEntity
(
"/usuarios"
,
usuario
,
Void
.
class
);
Assertions
.
assertThat
(
respuesta
.
getStatusCode
()).
isEqualTo
(
HttpStatus
.
CREATED
);
var
respuestaLogin
=
restTemplate
.
getForEntity
(
"/usuarios/{email}?clave={clave}"
,
DUsuario
.
class
,
"ppp@gmail.com"
,
"miClAvE"
);
Assertions
.
assertThat
(
respuestaLogin
.
getStatusCode
()).
isEqualTo
(
HttpStatus
.
UNAUTHORIZED
);
respuestaLogin
=
restTemplate
.
getForEntity
(
"/usuarios/{email}?clave={clave}"
,
DUsuario
.
class
,
usuario
.
email
(),
"xyx"
);
Assertions
.
assertThat
(
respuestaLogin
.
getStatusCode
()).
isEqualTo
(
HttpStatus
.
UNAUTHORIZED
);
respuestaLogin
=
restTemplate
.
getForEntity
(
"/usuarios/{email}?clave={clave}"
,
DUsuario
.
class
,
usuario
.
email
(),
usuario
.
clave
()
);
Assertions
.
assertThat
(
respuestaLogin
.
getStatusCode
()).
isEqualTo
(
HttpStatus
.
OK
);
Assertions
.
assertThat
(
respuestaLogin
.
getBody
().
nombre
()).
isEqualTo
(
usuario
.
nombre
());
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment