@Test public void succeed_for_property_without_definition_when_set_on_view_component() { ComponentDto view = db.components().insertView(); succeedForPropertyWithoutDefinitionAndValidComponent(view, view); }
private ComponentDto createAndIndexView() { ComponentDto view = db.components().insertView(); fooIndexer.indexOnAnalysis(view.uuid()); return view; }
@Test public void fail_if_view() { ComponentDto view = db.components().insertView(); failIfNotAProject(view, view); }
@Test public void fail_if_view() { ComponentDto view = db.components().insertView(); failIfNotAProject(view, view); }
@Test public void selectRootAndModulesOrSubviewsByProjectUuid_does_not_return_subview_with_specified_uuid() { ComponentDto view = db.components().insertView(); ComponentDto subview = db.components().insertComponent(ComponentTesting.newSubView(view)); assertThat(purgeMapper.selectRootAndModulesOrSubviewsByProjectUuid(subview.uuid())) .isEmpty(); }
@Test public void should_return_visibility_for_view() { userSession.logIn().setRoot(); ComponentDto view = db.components().insertView(); ShowWsResponse result = newRequest(null, view.getDbKey()); assertThat(result.getComponent().hasVisibility()).isTrue(); }
@Test public void param_componentRootUuids_enables_search_in_view_tree_if_user_has_permission_on_view() { ComponentDto view = db.components().insertView(); SearchRequest request = new SearchRequest() .setComponentRootUuids(asList(view.uuid())); userSession.registerComponents(view); IssueQuery query = underTest.create(request); assertThat(query.viewUuids()).containsOnly(view.uuid()); assertThat(query.onComponentOnly()).isFalse(); }
@Test public void deleteNonRootComponents_has_no_effect_when_parameter_contains_only_projects_and_or_views() { ComponentDbTester componentDbTester = db.components(); verifyNoEffect(componentDbTester.insertPrivateProject()); verifyNoEffect(componentDbTester.insertPublicProject()); verifyNoEffect(componentDbTester.insertView()); verifyNoEffect(componentDbTester.insertView(), componentDbTester.insertPrivateProject(), componentDbTester.insertPublicProject()); }
@Before public void setUp() { organization = dbTester.organizations().insert(); publicProject = componentDbTester.insertPublicProject(organization); privateProject1 = componentDbTester.insertPrivateProject(organization); privateProject2 = componentDbTester.insertPrivateProject(organization); view1 = componentDbTester.insertView(organization); view2 = componentDbTester.insertView(organization); application = componentDbTester.insertApplication(organization); user1 = userDbTester.insertUser(); user2 = userDbTester.insertUser(); group = userDbTester.insertGroup(organization); }
@Test public void select_views_and_sub_views_and_applications() { OrganizationDto organization = db.organizations().insert(); db.components().insertView(organization, "ABCD"); db.components().insertView(organization, "IJKL"); ComponentDto view = db.components().insertView(organization, "EFGH"); db.components().insertSubView(view, dto -> dto.setUuid("FGHI")); ComponentDto application = db.components().insertApplication(organization); assertThat(underTest.selectAllViewsAndSubViews(dbSession)).extracting(UuidWithProjectUuidDto::getUuid) .containsExactlyInAnyOrder("ABCD", "EFGH", "FGHI", "IJKL", application.uuid()); assertThat(underTest.selectAllViewsAndSubViews(dbSession)).extracting(UuidWithProjectUuidDto::getProjectUuid) .containsExactlyInAnyOrder("ABCD", "EFGH", "EFGH", "IJKL", application.projectUuid()); }
@Test public void succeed_for_property_without_definition_when_set_on_subview_component() { ComponentDto view = db.components().insertView(); ComponentDto subview = db.components().insertComponent(ComponentTesting.newSubView(view)); succeedForPropertyWithoutDefinitionAndValidComponent(view, subview); }
@Test public void fail_for_property_without_definition_when_set_on_projectCopy_component() { ComponentDto view = db.components().insertView(); ComponentDto projectCopy = db.components().insertComponent(ComponentTesting.newProjectCopy("a", db.components().insertPrivateProject(), view)); failForPropertyWithoutDefinitionOnUnsupportedComponent(view, projectCopy); }
@Test public void selectRootAndModulesOrSubviewsByProjectUuid_does_not_return_project_copy_with_specified_project_uuid() { ComponentDto privateProject = db.components().insertPrivateProject(); ComponentDto view = db.components().insertView(); db.components().insertComponent(ComponentTesting.newProjectCopy("a", view, privateProject)); assertThat(purgeMapper.selectRootAndModulesOrSubviewsByProjectUuid(view.uuid())) .extracting(IdUuidPair::getUuid) .containsOnly(view.uuid()); }
@Test public void projects_and_views() { userSession.logIn().addPermission(ADMINISTER, db.getDefaultOrganization()); ComponentDto project = db.components().insertPrivateProject(); ComponentDto view = db.components().insertView(); ws.newRequest().setParam(PARAM_QUALIFIERS, String.join(",", Qualifiers.PROJECT, Qualifiers.VIEW)).execute(); verifyDeleted(project, view); verifyListenersOnProjectsDeleted(project, view); }
@Test public void search_activity_returns_views() { ComponentDto apacheView = db.components().insertView(v -> v.setName("Apache View")); db.components().insertSnapshot(apacheView); logInAsSystemAdministrator(); insertActivity("T2", apacheView, SUCCESS); ActivityResponse activityResponse = call(ws.newRequest().setParam(PARAM_COMPONENT_QUERY, "apac")); assertThat(activityResponse.getTasksList()).extracting("id").containsOnly("T2"); }
@Test public void deleteProject_fails_with_IAE_if_specified_component_is_subview() { ComponentDto view = db.components().insertView(); ComponentDto subview = db.components().insertComponent(ComponentTesting.newSubView(view)); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Couldn't find root component with uuid " + subview.uuid()); underTest.deleteProject(dbSession, subview.uuid()); }
@Test public void search_by_task_id_returns_403_if_project_admin_but_not_root() { // WS api/ce/task must be used in order to search by task id. // Here it's a convenient feature of search by text query, which // is reserved to roots ComponentDto view = db.components().insertView(); insertActivity("T1", view, SUCCESS); userSession.logIn().addProjectPermission(UserRole.ADMIN, view); expectedException.expect(ForbiddenException.class); expectedException.expectMessage("Insufficient privileges"); call(ws.newRequest().setParam(Param.TEXT_QUERY, "T1")); }
@Test public void apply_project_default_template_on_view_when_no_view_default_template() { OrganizationDto organization = dbTester.organizations().insert(); ComponentDto view = dbTester.components().insertView(organization); PermissionTemplateDto projectPermissionTemplate = dbTester.permissionTemplates().insertTemplate(organization); GroupDto group = dbTester.users().insertGroup(organization); dbTester.permissionTemplates().addGroupToTemplate(projectPermissionTemplate, group, PROVISION_PROJECTS.getKey()); dbTester.organizations().setDefaultTemplates(organization, projectPermissionTemplate.getUuid(), null, null); underTest.applyDefault(session, organization.getUuid(), view, null); assertThat(selectProjectPermissionsOfGroup(organization, group, view)).containsOnly(PROVISION_PROJECTS.getKey()); }
@Test public void selectRootAndModulesOrSubviewsByProjectUuid_returns_subviews_with_specified_project_uuid_and_view() { ComponentDto view = db.components().insertView(); ComponentDto subview1 = db.components().insertComponent(ComponentTesting.newSubView(view)); ComponentDto subview2 = db.components().insertComponent(ComponentTesting.newSubView(view)); ComponentDto subview3 = db.components().insertComponent(ComponentTesting.newSubView(view)); assertThat(purgeMapper.selectRootAndModulesOrSubviewsByProjectUuid(view.uuid())) .extracting(IdUuidPair::getUuid) .containsOnly(view.uuid(), subview1.uuid(), subview2.uuid(), subview3.uuid()); }
@Test public void apply_template_on_view() { OrganizationDto organization = dbTester.organizations().insert(); ComponentDto view = dbTester.components().insertView(organization); PermissionTemplateDto permissionTemplate = dbTester.permissionTemplates().insertTemplate(organization); GroupDto group = dbTester.users().insertGroup(organization); dbTester.permissionTemplates().addGroupToTemplate(permissionTemplate, group, ADMINISTER.getKey()); dbTester.permissionTemplates().addGroupToTemplate(permissionTemplate, group, PROVISION_PROJECTS.getKey()); dbTester.organizations().setDefaultTemplates(organization, permissionTemplate.getUuid(), null, null); underTest.applyDefault(session, organization.getUuid(), view, null); assertThat(selectProjectPermissionsOfGroup(organization, group, view)) .containsOnly(ADMINISTER.getKey(), PROVISION_PROJECTS.getKey()); }