private static Notification.Builder populateProjectFields(Notification.Builder notification, Long componentId, Map<String, OrganizationDto> organizationsByUuid, Map<Long, ComponentDto> projectsById) { ComponentDto project = projectsById.get(componentId); String organizationUuid = project.getOrganizationUuid(); OrganizationDto organizationDto = organizationsByUuid.get(organizationUuid); checkArgument(organizationDto != null, "No organization for uuid '%s'", organizationUuid); return notification.setOrganization(organizationDto.getKey()) .setProject(project.getDbKey()) .setProjectName(project.name()); }
private static Ce.Task.Builder setComponent(Ce.Task.Builder builder, @Nullable String componentUuid, DtoCache componentDtoCache) { ComponentDto componentDto = componentDtoCache.getComponent(componentUuid); if (componentDto == null) { return builder; } builder.setComponentKey(componentDto.getKey()); builder.setComponentName(componentDto.name()); builder.setComponentQualifier(componentDto.qualifier()); return builder; }
protected void assertResultOrder(String query, String... resultsInOrder) { ComponentDto project = indexProject("key-1", "Quality Product"); List<ComponentDto> files = Arrays.stream(resultsInOrder) .map(r -> ComponentTesting.newFileDto(project).setName(r)) .peek(f -> f.setUuid(f.uuid() + "_" + f.name().replaceAll("[^a-zA-Z0-9]", ""))) .collect(Collectors.toList()); // index them, but not in the expected order files.stream() .sorted(Comparator.comparing(ComponentDto::uuid).reversed()) .forEach(this::index); assertExactResults(query, files.toArray(new ComponentDto[0])); }
private static List<Component> writeProjects(List<ComponentDto> projects, Set<String> desiredFields) { return projects.stream().map(project -> { Component.Builder compBuilder = Component.newBuilder().setUuid(project.uuid()); writeIfNeeded("key", project.getDbKey(), compBuilder::setKey, desiredFields); writeIfNeeded("name", project.name(), compBuilder::setName, desiredFields); writeIfNeeded("creationDate", project.getCreatedAt(), compBuilder::setCreationDate, desiredFields); writeIfNeeded("visibility", project.isPrivate() ? PRIVATE.getLabel() : PUBLIC.getLabel(), compBuilder::setVisibility, desiredFields); return compBuilder.build(); }).collect(toList()); }
private static BranchSupport.ComponentKey createComponentKeyOfBranch(ComponentDto branch) { BranchSupport.ComponentKey mainComponentKey = mockComponentKey(branch.getKey(), branch.getKey()); when(mainComponentKey.getMainBranchComponentKey()).thenReturn(mainComponentKey); BranchSupport.ComponentKey componentKey = mockComponentKey(branch.getKey(), branch.getDbKey()); when(componentKey.getBranch()).thenReturn(Optional.ofNullable(branch).map(b -> new BranchSupport.Branch(b.name(), BranchType.LONG))); when(componentKey.getMainBranchComponentKey()).thenReturn(mainComponentKey); return componentKey; }
public void updateKey(DbSession dbSession, ComponentDto projectOrModule, String newKey) { userSession.checkComponentPermission(UserRole.ADMIN, projectOrModule); checkIsProjectOrModule(projectOrModule); checkProjectOrModuleKeyFormat(newKey); dbClient.componentKeyUpdaterDao().updateKey(dbSession, projectOrModule.uuid(), newKey); projectIndexers.commitAndIndex(dbSession, singletonList(projectOrModule), ProjectIndexer.Cause.PROJECT_KEY_UPDATE); if (isMainProject(projectOrModule)) { Project newProject = new Project(projectOrModule.uuid(), newKey, projectOrModule.name(), projectOrModule.description(), projectOrModule.getTags()); projectLifeCycleListeners.onProjectsRekeyed(singleton(new RekeyedProject(newProject, projectOrModule.getDbKey()))); } }
@Test public void submit_a_report_on_existing_project_with_project_scan_permission() { ComponentDto project = db.components().insertPrivateProject(db.getDefaultOrganization()); userSession.addProjectPermission(SCAN_EXECUTION, project); mockSuccessfulPrepareSubmitCall(); underTest.submit(defaultOrganizationKey, project.getDbKey(), null, project.name(), emptyMap(), IOUtils.toInputStream("{binary}")); verify(queue).submit(any(CeTaskSubmit.class)); }
@Test public void user_with_scan_permission_on_organization_is_allowed_to_submit_a_report_on_existing_project() { OrganizationDto org = db.organizations().insert(); ComponentDto project = db.components().insertPrivateProject(org); userSession.addPermission(SCAN, org); mockSuccessfulPrepareSubmitCall(); underTest.submit(org.getKey(), project.getDbKey(), null, project.name(), emptyMap(), IOUtils.toInputStream("{binary}")); verify(queue).submit(any(CeTaskSubmit.class)); }
private ComponentDto createForProjectView(Component projectView, PathAwareVisitor.Path<ComponentDtoHolder> path) { ComponentDto res = createBase(projectView); res.setScope(Scopes.FILE); res.setQualifier(Qualifiers.PROJECT); res.setName(projectView.getName()); res.setLongName(res.name()); res.setCopyComponentUuid(projectView.getProjectViewAttributes().getProjectUuid()); setRootAndParentModule(res, path); return res; }
private static void addProject(JsonWriter json, ComponentDto project) { json.beginObject() .prop("id", project.getId()) .prop("k", project.getDbKey()) .prop("nm", project.name()) .prop("sc", project.scope()) .prop("qu", project.qualifier()) .endObject(); }
@Test public void fail_if_component_is_not_a_project() { ComponentDto component = db.components().insertPublicPortfolio(db.getDefaultOrganization()); userSession.logIn().addProjectPermission(SCAN_EXECUTION, component); mockSuccessfulPrepareSubmitCall(); expectedException.expect(BadRequestException.class); expectedException.expectMessage(format("Component '%s' is not a project", component.getKey())); underTest.submit(defaultOrganizationKey, component.getDbKey(), null, component.name(), emptyMap(), IOUtils.toInputStream("{binary}")); }
private static CreateWsResponse toCreateResponse(ComponentDto componentDto) { return CreateWsResponse.newBuilder() .setProject(CreateWsResponse.Project.newBuilder() .setKey(componentDto.getDbKey()) .setName(componentDto.name()) .setQualifier(componentDto.qualifier()) .setVisibility(Visibility.getLabel(componentDto.isPrivate()))) .build(); }
private ComponentDto createForSubView(Component subView, PathAwareVisitor.Path<ComponentDtoHolder> path) { ComponentDto res = createBase(subView); res.setScope(Scopes.PROJECT); res.setQualifier(Qualifiers.SUBVIEW); res.setName(subView.getName()); res.setDescription(subView.getDescription()); res.setLongName(res.name()); res.setCopyComponentUuid(subView.getSubViewAttributes().getOriginalViewUuid()); setRootAndParentModule(res, path); return res; }
@Test public void submit_does_not_use_delegate_if_characteristics_are_empty() { OrganizationDto organization = db.organizations().insert(); ComponentDto project = db.components().insertMainBranch(organization); UserDto user = db.users().insertUser(); userSession.logIn(user).addProjectPermission(SCAN_EXECUTION, project); mockSuccessfulPrepareSubmitCall(); InputStream reportInput = IOUtils.toInputStream("{binary}", StandardCharsets.UTF_8); underTest.submit(organization.getKey(), project.getDbKey(), null, project.name(), emptyMap(), reportInput); verifyZeroInteractions(branchSupportDelegate); }
@Test public void fail_with_organizationKey_does_not_match_organization_of_specified_component() { userSession.logIn().setRoot(); OrganizationDto organization = db.organizations().insert(); ComponentDto project = db.components().insertPrivateProject(organization); mockSuccessfulPrepareSubmitCall(); underTest.submit(organization.getKey(), project.getDbKey(), null, project.name(), emptyMap(), IOUtils.toInputStream("{binary}")); }
public static ComponentDoc toDocument(ComponentDto component) { return new ComponentDoc() .setId(component.uuid()) .setName(component.name()) .setKey(component.getDbKey()) .setProjectUuid(component.projectUuid()) .setOrganization(component.getOrganizationUuid()) .setLanguage(component.language()) .setQualifier(component.qualifier()); } }
private static ProjectMeasuresDoc newDoc(ComponentDto project) { return new ProjectMeasuresDoc() .setOrganizationUuid(project.getOrganizationUuid()) .setId(project.uuid()) .setKey(project.getDbKey()) .setName(project.name()); }
private static ProjectMeasuresDoc newDoc(ComponentDto project) { return new ProjectMeasuresDoc() .setOrganizationUuid(project.getOrganizationUuid()) .setId(project.uuid()) .setKey(project.getDbKey()) .setName(project.name()); }
@Test public void indexOnAnalysis_updates_index_on_changes() { ComponentDto project = db.components().insertPrivateProject(); underTest.indexOnAnalysis(project.uuid()); assertThatComponentHasName(project, project.name()); // modify project.setName("NewName"); updateDb(project); // verify that index is updated underTest.indexOnAnalysis(project.uuid()); assertThatIndexContainsOnly(project); assertThatComponentHasName(project, "NewName"); }
@Test public void should_return_empty_qualifiers() { ComponentDto project = db.components().insertComponent(newPrivateProjectDto(organization)); componentIndexer.indexOnAnalysis(project.projectUuid()); authorizationIndexerTester.allowOnlyAnyone(project); SuggestionsWsResponse response = ws.newRequest() .setMethod("POST") .setParam(PARAM_QUERY, project.name()) .executeProtobuf(SuggestionsWsResponse.class); assertThat(response.getResultsList()) .extracting(Category::getQ, Category::getItemsCount) .containsExactlyInAnyOrder(tuple("VW", 0), tuple("SVW", 0), tuple("APP", 0), tuple("TRK", 1), tuple("FIL", 0), tuple("UTS", 0)); }