78.2 Find user (#9)
This commit is contained in:
@ -69,6 +69,11 @@ public class UserResource {
|
|||||||
return userService.updateUser(currentUsername, userDto);
|
return userService.updateUser(currentUsername, userDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("{username}")
|
||||||
|
public User findUser(@PathVariable String username) {
|
||||||
|
return userService.findByUsername(username);
|
||||||
|
}
|
||||||
|
|
||||||
private void authenticate(String username, String password) {
|
private void authenticate(String username, String password) {
|
||||||
Authentication auth = new UsernamePasswordAuthenticationToken(username, password);
|
Authentication auth = new UsernamePasswordAuthenticationToken(username, password);
|
||||||
authenticationManager.authenticate(auth);
|
authenticationManager.authenticate(auth);
|
||||||
|
|||||||
@ -411,4 +411,60 @@ class UserResourceUnSecureTest extends BaseUserTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
class FindUserTests {
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
user = userRepository
|
||||||
|
.findAll()
|
||||||
|
.stream()
|
||||||
|
.findAny()
|
||||||
|
.orElseGet(() -> userRepository.save(createRandomUser()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void findUser_present() {
|
||||||
|
|
||||||
|
//given
|
||||||
|
String username = user.getUsername();
|
||||||
|
|
||||||
|
//when
|
||||||
|
var responseEntity = restTemplate.getForEntity("/user/{username}", User.class, username);
|
||||||
|
|
||||||
|
//then
|
||||||
|
log.debug("Response Entity: {}", responseEntity);
|
||||||
|
assertThat(responseEntity.getStatusCode()).isEqualTo(OK);
|
||||||
|
assertThat(responseEntity.getBody())
|
||||||
|
.isNotNull()
|
||||||
|
.hasNoNullFieldsOrPropertiesExcept("lastLoginDate", "lastLoginDateDisplay")
|
||||||
|
.hasFieldOrPropertyWithValue("username", username)
|
||||||
|
.hasFieldOrPropertyWithValue("email", user.getEmail())
|
||||||
|
.hasFieldOrPropertyWithValue("firstName", user.getFirstName())
|
||||||
|
.hasFieldOrPropertyWithValue("lastName", user.getLastName())
|
||||||
|
.hasFieldOrPropertyWithValue("isActive", user.isActive())
|
||||||
|
.hasFieldOrPropertyWithValue("isNotLocked", user.isNotLocked())
|
||||||
|
.hasFieldOrPropertyWithValue("role", user.getRole());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void findUser_absent() {
|
||||||
|
|
||||||
|
//given
|
||||||
|
String username = FAKER.name().username();
|
||||||
|
|
||||||
|
//when
|
||||||
|
var responseEntity = restTemplate.getForEntity("/user/{username}", HttpResponse.class, username);
|
||||||
|
|
||||||
|
//then
|
||||||
|
log.debug("Response Entity: {}", responseEntity);
|
||||||
|
assertThat(responseEntity.getStatusCode()).isEqualTo(BAD_REQUEST);
|
||||||
|
assertThat(responseEntity.getBody())
|
||||||
|
.isNotNull()
|
||||||
|
.hasNoNullFieldsOrProperties()
|
||||||
|
.hasFieldOrPropertyWithValue("httpStatus", BAD_REQUEST)
|
||||||
|
.hasFieldOrPropertyWithValue("message", String.format("User with username `%s` not found", username).toUpperCase());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user