private static boolean includeProject(Project project, String[] filters) { if (filters == null) { return true; } for (String filter : filters) { String[] filterEntry = filter.toLowerCase().split(":"); String filterType = filterEntry[0]; if ("id".equals(filterType)) { if (!satisfiesFilter(project.getProjectId(), filterEntry[1])) { return false; } } else if ("name".equals(filterType)) { if (!satisfiesFilter(project.getName(), filterEntry[1])) { return false; } } else if (filterType.startsWith("labels.")) { String labelKey = filterType.substring("labels.".length()); if (project.getLabels() != null) { String labelValue = project.getLabels().get(labelKey); if (!satisfiesFilter(labelValue, filterEntry[1])) { return false; } } } } return true; }
static ProjectInfo fromPb(com.google.api.services.cloudresourcemanager.model.Project projectPb) { Builder builder = newBuilder(projectPb.getProjectId()).setProjectNumber(projectPb.getProjectNumber()); if (projectPb.getName() != null && !projectPb.getName().equals("Unnamed")) { builder.setName(projectPb.getName()); } if (projectPb.getLabels() != null) { builder.setLabels(projectPb.getLabels()); } if (projectPb.getLifecycleState() != null) { builder.setState(State.valueOf(projectPb.getLifecycleState())); } if (projectPb.getCreateTime() != null) { builder.setCreateTimeMillis( DATE_TIME_FORMATTER.parse(projectPb.getCreateTime(), Instant.FROM).toEpochMilli()); } if (projectPb.getParent() != null) { builder.setParent(ResourceId.fromPb(projectPb.getParent())); } return builder.build(); } }
private void compareReadWriteFields( com.google.api.services.cloudresourcemanager.model.Project expected, com.google.api.services.cloudresourcemanager.model.Project actual) { assertEquals(expected.getProjectId(), actual.getProjectId()); assertEquals(expected.getName(), actual.getName()); assertEquals(expected.getLabels(), actual.getLabels()); assertEquals(expected.getParent(), actual.getParent()); } }
@Test public void testListNoPageTokenFieldOptions() { Map<ResourceManagerRpc.Option, Object> rpcOptions = new HashMap<>(); rpcOptions.put(ResourceManagerRpc.Option.PAGE_SIZE, 1); rpcOptions.put(ResourceManagerRpc.Option.FIELDS, "projects(projectId,name)"); rpc.create(PARTIAL_PROJECT); rpc.create(COMPLETE_PROJECT); Tuple<String, Iterable<com.google.api.services.cloudresourcemanager.model.Project>> projects = rpc.list(rpcOptions); assertNull(projects.x()); Iterator<com.google.api.services.cloudresourcemanager.model.Project> iterator = projects.y().iterator(); com.google.api.services.cloudresourcemanager.model.Project returnedProject = iterator.next(); assertEquals(COMPLETE_PROJECT.getProjectId(), returnedProject.getProjectId()); assertEquals(COMPLETE_PROJECT.getName(), returnedProject.getName()); assertNull(returnedProject.getLabels()); assertNull(returnedProject.getParent()); assertNull(returnedProject.getProjectNumber()); assertNull(returnedProject.getLifecycleState()); assertNull(returnedProject.getCreateTime()); assertFalse(iterator.hasNext()); }
@Test public void testListFieldOptions() { Map<ResourceManagerRpc.Option, Object> rpcOptions = new HashMap<>(); rpcOptions.put( ResourceManagerRpc.Option.FIELDS, "projects(projectId,name,labels),nextPageToken"); rpc.create(PROJECT_WITH_PARENT); Tuple<String, Iterable<com.google.api.services.cloudresourcemanager.model.Project>> projects = rpc.list(rpcOptions); com.google.api.services.cloudresourcemanager.model.Project returnedProject = projects.y().iterator().next(); assertFalse(PROJECT_WITH_PARENT.equals(returnedProject)); assertEquals(PROJECT_WITH_PARENT.getProjectId(), returnedProject.getProjectId()); assertEquals(PROJECT_WITH_PARENT.getName(), returnedProject.getName()); assertEquals(PROJECT_WITH_PARENT.getLabels(), returnedProject.getLabels()); assertNull(returnedProject.getParent()); assertNull(returnedProject.getProjectNumber()); assertNull(returnedProject.getLifecycleState()); assertNull(returnedProject.getCreateTime()); }
com.google.api.services.cloudresourcemanager.model.Project returnedProject = iterator.next(); assertEquals(COMPLETE_PROJECT.getProjectId(), returnedProject.getProjectId()); assertEquals(COMPLETE_PROJECT.getName(), returnedProject.getName()); assertNull(returnedProject.getLabels()); assertNull(returnedProject.getParent()); returnedProject = iterator.next(); assertEquals(PARTIAL_PROJECT.getProjectId(), returnedProject.getProjectId()); assertEquals(PARTIAL_PROJECT.getName(), returnedProject.getName()); assertNull(returnedProject.getLabels()); assertNull(returnedProject.getParent());
@Test public void testGetWithOptions() { com.google.api.services.cloudresourcemanager.model.Project originalProject = rpc.create(COMPLETE_PROJECT); Map<ResourceManagerRpc.Option, Object> rpcOptions = new HashMap<>(); rpcOptions.put(ResourceManagerRpc.Option.FIELDS, "projectId,name,createTime"); com.google.api.services.cloudresourcemanager.model.Project returnedProject = rpc.get(COMPLETE_PROJECT.getProjectId(), rpcOptions); assertFalse(COMPLETE_PROJECT.equals(returnedProject)); assertEquals(COMPLETE_PROJECT.getProjectId(), returnedProject.getProjectId()); assertEquals(COMPLETE_PROJECT.getName(), returnedProject.getName()); assertEquals(originalProject.getCreateTime(), returnedProject.getCreateTime()); assertNull(returnedProject.getParent()); assertNull(returnedProject.getProjectNumber()); assertNull(returnedProject.getLifecycleState()); assertNull(returnedProject.getLabels()); }
@Test public void testIsInvalidProjectName() { com.google.api.services.cloudresourcemanager.model.Project project = new com.google.api.services.cloudresourcemanager.model.Project() .setProjectId("some-project-id"); rpc.create(project); assertNull(rpc.get(project.getProjectId(), EMPTY_RPC_OPTIONS).getName()); RESOURCE_MANAGER_HELPER.removeProject(project.getProjectId()); project.setName("This is a valid name-'\"!"); rpc.create(project); assertEquals(project.getName(), rpc.get(project.getProjectId(), EMPTY_RPC_OPTIONS).getName()); RESOURCE_MANAGER_HELPER.removeProject(project.getProjectId()); project.setName("invalid-character-,"); try { rpc.create(project); fail("Should fail because of invalid project name."); } catch (ResourceManagerException e) { assertEquals(400, e.getCode()); assertTrue(e.getMessage().contains("invalid name")); } }
break; case "name": project.setName(fullProject.getName()); break; case "parent":
private static com.google.api.services.cloudresourcemanager.model.Project copyFrom( com.google.api.services.cloudresourcemanager.model.Project from) { return new com.google.api.services.cloudresourcemanager.model.Project() .setProjectId(from.getProjectId()) .setName(from.getName()) .setLabels(from.getLabels() != null ? ImmutableMap.copyOf(from.getLabels()) : null) .setProjectNumber(from.getProjectNumber()) .setCreateTime(from.getCreateTime()) .setLifecycleState(from.getLifecycleState()) .setParent(from.getParent() != null ? from.getParent().clone() : null); }
assertEquals("ACTIVE", returnedProject.getLifecycleState()); assertNull(returnedProject.getLabels()); assertNull(returnedProject.getName()); assertNull(returnedProject.getParent()); assertNotNull(returnedProject.getProjectNumber());
@Override public Object getValueAt(int row, int column) { switch (column) { case PROJECT_NAME_COLUMN: return projectList.get(row).getName(); case PROJECT_ID_COLUMN: return projectList.get(row).getProjectId(); default: return ""; } }
@NotNull private String getLabelText() { return String.format("%s (%s)", project.getName(), project.getProjectId()); } }
static ProjectInfo fromPb(com.google.api.services.cloudresourcemanager.model.Project projectPb) { Builder builder = builder(projectPb.getProjectId()).projectNumber(projectPb.getProjectNumber()); if (projectPb.getName() != null && !projectPb.getName().equals("Unnamed")) { builder.name(projectPb.getName()); } if (projectPb.getLabels() != null) { builder.labels(projectPb.getLabels()); } if (projectPb.getLifecycleState() != null) { builder.state(State.valueOf(projectPb.getLifecycleState())); } if (projectPb.getCreateTime() != null) { builder.createTimeMillis(DateTime.parse(projectPb.getCreateTime()).getMillis()); } if (projectPb.getParent() != null) { builder.parent(ResourceId.fromPb(projectPb.getParent())); } return builder.build(); } }
static ProjectInfo fromPb(com.google.api.services.cloudresourcemanager.model.Project projectPb) { Builder builder = builder(projectPb.getProjectId()).projectNumber(projectPb.getProjectNumber()); if (projectPb.getName() != null && !projectPb.getName().equals("Unnamed")) { builder.name(projectPb.getName()); } if (projectPb.getLabels() != null) { builder.labels(projectPb.getLabels()); } if (projectPb.getLifecycleState() != null) { builder.state(State.valueOf(projectPb.getLifecycleState())); } if (projectPb.getCreateTime() != null) { builder.createTimeMillis(DateTime.parse(projectPb.getCreateTime()).getMillis()); } if (projectPb.getParent() != null) { builder.parent(ResourceId.fromPb(projectPb.getParent())); } return builder.build(); } }
@Test public void setProjectList_clearsPreviousState() { model.setProjectList(Arrays.asList(testProject1, testProject2)); model.setProjectList(Collections.singletonList(testProject2)); assertThat(model.getRowCount()).isEqualTo(1); assertThat(model.getProjectNameAtRow(0)).isEqualTo(testProject2.getName()); } }
@Test public void setCloudProject_updatesUi() { prepareOneTestUserOneTestProjectDialog(testUiProject); assertThat(projectSelectionDialog.getAccountComboBox().getSelectedItem()) .isEqualTo(mockTestUser); assertThat(projectSelectionDialog.getSelectedProjectName()) .isEqualTo(testGoogleProject.getName()); assertThat(projectSelectionDialog.getSelectedProjectId()) .isEqualTo(testGoogleProject.getProjectId()); assertThat(projectSelectionDialog.getProjectListTable().getSelectedRow()).isEqualTo(0); }
@Test public void getCloudProject_returns_selectedProject() { prepareOneTestUserOneTestProjectDialog(testUiProject); Project secondProject = new Project(); secondProject.setName("project-2"); secondProject.setProjectId("project-2-id"); mockUserProjects(mockTestUser, Arrays.asList(testGoogleProject, secondProject)); cleanLoadUsersAndProjects(); projectSelectionDialog.showProjectInList(secondProject.getName()); CloudProject selectedProject = projectSelectionDialog.getSelectedProject(); CloudProject expected = CloudProject.create( secondProject.getName(), secondProject.getProjectId(), mockTestUser.getEmail()); assertThat(selectedProject).isEqualTo(expected); }