78.2 Find user (#9)

This commit is contained in:
Art
2021-09-09 22:54:47 +03:00
parent c1f3d53793
commit 0eedcf8269
2 changed files with 61 additions and 0 deletions

View File

@ -69,6 +69,11 @@ public class UserResource {
return userService.updateUser(currentUsername, userDto);
}
@GetMapping("{username}")
public User findUser(@PathVariable String username) {
return userService.findByUsername(username);
}
private void authenticate(String username, String password) {
Authentication auth = new UsernamePasswordAuthenticationToken(username, password);
authenticationManager.authenticate(auth);

View File

@ -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());
}
}
}