/** * Mocks the {@link ListProjectsResponse} returned by the {@link #mockCloudResourceManager}. * * @param projects the list of {@link Project Projects} to return as part of the {@link * ListProjectsResponse} */ private void mockListProjectsResponse(List<Project> projects) { when(mockCloudResourceManager.projects()).thenReturn(mockProjects); try { when(mockProjects.list()).thenReturn(mockList); when(mockList.setPageSize(any())).thenReturn(mockList); when(mockList.setPageToken(any())).thenReturn(mockList); ListProjectsResponse response = new ListProjectsResponse(); response.setProjects(projects); response.setNextPageToken(""); when(mockList.execute()).thenReturn(response); } catch (IOException e) { // Should not happen when setting up these mocks. throw new AssertionError(e); } }
void cacheResources() throws IOException { final CloudResourceManager.Projects.List request = cloudResourceManager.projects().list(); ListProjectsResponse response; do { response = request.execute(); if (response.getProjects() == null) { continue; } for (Project project : response.getProjects()) { final boolean access = resolveProject(project); logger.info("Resolved project: {}, access={}", project.getProjectId(), access); } request.setPageToken(response.getNextPageToken()); } while (response.getNextPageToken() != null); logger.info("Resource cache loaded"); }
@Override public Tuple<String, Iterable<Project>> list(Map<Option, ?> options) { try { ListProjectsResponse response = resourceManager .projects() .list() .setFields(Option.FIELDS.getString(options)) .setFilter(Option.FILTER.getString(options)) .setPageSize(Option.PAGE_SIZE.getInt(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)) .execute(); return Tuple.<String, Iterable<Project>>of( response.getNextPageToken(), response.getProjects()); } catch (IOException ex) { throw translate(ex); } }