Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import static cwms.cda.api.Controllers.PAGE;
import static cwms.cda.api.Controllers.PAGE_SIZE;
import static cwms.cda.api.Controllers.STATUS_200;
import static cwms.cda.api.Controllers.STATUS_404;
import static cwms.cda.api.Controllers.USERNAME_LIKE;
import static cwms.cda.api.Controllers.queryParamAsClass;
import static cwms.cda.data.dao.JooqDao.getDslContext;
Expand All @@ -19,6 +20,7 @@
import cwms.cda.api.Controllers;
import cwms.cda.api.errors.CdaError;
import cwms.cda.api.errors.ExceptionTraceSupport;
import cwms.cda.api.errors.NotFoundException;
import cwms.cda.data.dao.UserDao;
import cwms.cda.data.dto.CwmsDTOPaginated;
import cwms.cda.data.dto.auth.users.User;
Expand Down Expand Up @@ -154,12 +156,15 @@ public void getAll(Context ctx) {
@OpenApiParam(name = "user-name", required = true,
description = "Specific user to retrieve")
},
responses = @OpenApiResponse(
responses = {
@OpenApiResponse(
content = {
@OpenApiContent(from = User.class, type = Formats.JSON)
},
status = STATUS_200
),
),
@OpenApiResponse(status = STATUS_404, description = "User not found.")
},
security = {
@OpenApiSecurity(name = "gets overridden allows lock icon.")
},
Expand All @@ -171,7 +176,8 @@ public void getOne(Context ctx, String userName) {
try (final Timer.Context ignored = markAndTime(GET_ONE)) {
DSLContext dsl = getDslContext(ctx);
UserDao dao = new UserDao(dsl);
User user = dao.getByUniqueName(userName, null).orElse(null);
User user = dao.getByUniqueName(userName, null)
.orElseThrow(() -> new NotFoundException("User not found: " + userName));
String formatHeader = ctx.header(Header.ACCEPT);
ContentType contentType = Formats.parseHeader(formatHeader, User.class);
String result = Formats.format(contentType, user);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
public class UserManagementTestIT extends DataApiTestIT {

private static final String LOCATION = "SOME_LOCATION";
private static final String MISSING_USER = "DOES_NOT_EXIST";
private static final String SWT = "SWT";
private static final String SPK = "SPK";

Expand Down Expand Up @@ -146,6 +147,23 @@ void test_manage_user(String authType, TestAccounts.KeyUser theUser, RequestSpec
;
}

@ParameterizedTest
@ArgumentsSource(UserSpecSource.class)
@AuthType(user = TestAccounts.KeyUser.SPK_NORMAL2)
void test_get_missing_user_not_found(String authType, TestAccounts.KeyUser theUser,
RequestSpecification authSpec) {
given()
.log().ifValidationFails(LogDetail.ALL, true)
.spec(authSpec)
.when()
.get("/users/{user-name}", MISSING_USER)
.then()
.log().ifValidationFails(LogDetail.ALL, true)
.statusCode(is(HttpCode.NOT_FOUND.getStatus()))
.body("message", equalTo("User not found: " + MISSING_USER))
;
}

@ParameterizedTest
@ArgumentsSource(UserSpecSource.class)
@AuthType(user = TestAccounts.KeyUser.SPK_NORMAL2)
Expand Down
Loading