@Test public void failsToListAllWithInvalidPageLink() throws Throwable { String pageLink = "randomPageLink"; doThrow(new PageExpiredException(pageLink)).when(frontendClient).nextList(pageLink); Response response = listNetworks(Optional.absent(), Optional.absent(), Optional.of(pageLink)); assertThat(response.getStatus(), is(Response.Status.NOT_FOUND.getStatusCode())); String expectedErrorMessage = "Page " + pageLink + " has expired"; ApiError errors = response.readEntity(ApiError.class); assertThat(errors.getCode(), is(ErrorCode.PAGE_EXPIRED.getCode())); assertThat(errors.getMessage(), is(expectedErrorMessage)); }
@Test public void failsToListAllWithInvalidPageSize() throws Throwable { int pageSize = paginationConfig.getMaxPageSize() + 1; Response response = listNetworks(Optional.absent(), Optional.of(pageSize), Optional.absent()); assertThat(response.getStatus(), is(Response.Status.BAD_REQUEST.getStatusCode())); String expectedErrorMsg = String.format( "The page size '%d' is not between '1' and '%d'", pageSize, PaginationConfig.DEFAULT_MAX_PAGE_SIZE); ApiError errors = response.readEntity(ApiError.class); assertThat(errors.getCode(), is(ErrorCode.INVALID_PAGE_SIZE.getCode())); assertThat(errors.getMessage(), is(expectedErrorMsg)); }
@Test public void testSetSecurityGroupsFail() throws Exception { List<String> securityGroups = Arrays.asList(new String[] {"tenant\\adminGroup1", "tenant\\adminGroup2"}); when(projectFeClient.setSecurityGroups(projectId, securityGroups)) .thenThrow(new ExternalException("Failed to change security groups")); Response response = client() .target(projectRoutePath) .request() .post( Entity.entity(new ResourceList<>(securityGroups), MediaType.APPLICATION_JSON_TYPE)); assertThat(response.getStatus(), is(500)); ApiError errors = response.readEntity(ApiError.class); assertThat(errors.getCode(), is("InternalError")); assertThat(errors.getMessage(), is("Failed to change security groups")); }
@Test public void testSetSecurityGroupsFailWithInvalidSecurityGroup() throws Exception { List<String> securityGroups = Arrays.asList(new String[] {"adminGroup1", "adminGroup2"}); when(projectFeClient.setSecurityGroups(projectId, securityGroups)) .thenThrow(new ExternalException("Failed to change security groups")); Response response = client() .target(projectRoutePath) .request() .post( Entity.entity(new ResourceList<>(securityGroups), MediaType.APPLICATION_JSON_TYPE)); assertThat(response.getStatus(), is(400)); ApiError errors = response.readEntity(ApiError.class); assertThat(errors.getCode(), is("InvalidSecurityGroupFormat")); assertThat( errors.getMessage(), containsString("The security group format should match domain\\group")); }