private ComponentDto newSubViewDto(ComponentDto rootView) { return ComponentTesting.newSubView(rootView, SUBVIEW_1_UUID, SUBVIEW_1_KEY) .setName(SUBVIEW_1_NAME); }
public static ComponentDto newSubView(ComponentDto viewOrSubView) { String uuid = Uuids.createFast(); return newSubView(viewOrSubView, uuid, "KEY_" + uuid); }
@SafeVarargs public final ComponentDto insertSubView(ComponentDto view, Consumer<ComponentDto>... dtoPopulators) { return insertComponentImpl(newSubView(view), view.isPrivate(), dtoPopulators); }
@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 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 return_measures_on_sub_view() { OrganizationDto organization = db.organizations().insert(); ComponentDto view = db.components().insertPrivatePortfolio(organization); ComponentDto subView = db.components().insertComponent(newSubView(view)); userSession.addProjectPermission(UserRole.USER, subView); MetricDto metric = db.measures().insertMetric(m -> m.setValueType(FLOAT.name())); db.measures().insertLiveMeasure(subView, metric, m -> m.setValue(15.5d)); SearchWsResponse result = call(singletonList(subView.getDbKey()), singletonList(metric.getKey())); List<Measure> measures = result.getMeasuresList(); assertThat(measures).hasSize(1); Measure measure = measures.get(0); assertThat(measure.getMetric()).isEqualTo(metric.getKey()); assertThat(measure.getValue()).isEqualTo("15.5"); }
@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 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 return_empty_results_if_not_allowed_to_search_for_subview() { ComponentDto view = db.components().insertView(); ComponentDto subView = db.components().insertComponent(newSubView(view)); SearchRequest request = new SearchRequest() .setComponentRootUuids(asList(subView.uuid())); IssueQuery query = underTest.create(request); assertThat(query.viewUuids()).containsOnly("<UNKNOWN>"); }
@Test public void fail_when_component_is_a_subview() { ComponentDto file = db.components().insertComponent(newSubView(ComponentTesting.newView(db.organizations().insert()))); failIfComponentIsNotAProjectOrView(file); }
@Test public void fail_when_component_is_a_subview() { ComponentDto file = db.components().insertComponent(newSubView(ComponentTesting.newView(db.organizations().insert()))); failIfComponentIsNotAProjectOrView(file); }
@Test public void fail_when_component_is_a_subview() { ComponentDto file = db.components().insertComponent(newSubView(ComponentTesting.newView(db.organizations().insert()))); failIfComponentIsNotAProjectOrView(file); }
@Test public void fail_when_component_is_a_subview() { ComponentDto file = db.components().insertComponent(newSubView(ComponentTesting.newView(db.organizations().insert()))); failIfComponentIsNotAProjectOrView(file); }
@Test public void deleteNonRootComponents_deletes_properties_of_subviews_of_a_view() { ComponentDto view = db.components().insertView(); ComponentDto subview1 = db.components().insertComponent(ComponentTesting.newSubView(view)); ComponentDto subview2 = db.components().insertComponent(ComponentTesting.newSubView(subview1)); ComponentDto subview3 = db.components().insertComponent(ComponentTesting.newSubView(view)); ComponentDto pc = db.components().insertComponent(newProjectCopy("a", db.components().insertPrivateProject(), view)); insertPropertyFor(view, subview1, subview2, subview3, pc); assertThat(getResourceIdOfProperties()).containsOnly(view.getId(), subview1.getId(), subview2.getId(), subview3.getId(), pc.getId()); underTest.deleteNonRootComponentsInView(dbSession, singletonList(subview1)); assertThat(getResourceIdOfProperties()) .containsOnly(view.getId(), subview2.getId(), subview3.getId(), pc.getId()); underTest.deleteNonRootComponentsInView(dbSession, asList(subview2, subview3, pc)); assertThat(getResourceIdOfProperties()) .containsOnly(view.getId(), pc.getId()); }
@Test public void deleteNonRootComponentsInView_deletes_manual_measures_of_subviews_of_a_view() { ComponentDto view = db.components().insertView(); ComponentDto subview1 = db.components().insertComponent(ComponentTesting.newSubView(view)); ComponentDto subview2 = db.components().insertComponent(ComponentTesting.newSubView(subview1)); ComponentDto subview3 = db.components().insertComponent(ComponentTesting.newSubView(view)); ComponentDto pc = db.components().insertComponent(newProjectCopy("a", db.components().insertPrivateProject(), view)); insertManualMeasureFor(view, subview1, subview2, subview3, pc); assertThat(getComponentUuidsOfManualMeasures()).containsOnly(view.uuid(), subview1.uuid(), subview2.uuid(), subview3.uuid(), pc.uuid()); underTest.deleteNonRootComponentsInView(dbSession, singletonList(subview1)); assertThat(getComponentUuidsOfManualMeasures()) .containsOnly(view.uuid(), subview2.uuid(), subview3.uuid(), pc.uuid()); underTest.deleteNonRootComponentsInView(dbSession, asList(subview2, subview3, pc)); assertThat(getComponentUuidsOfManualMeasures()) .containsOnly(view.uuid(), pc.uuid()); }
@Test public void deleteNonRootComponents_deletes_measures_of_any_non_root_component_of_a_view() { ComponentDto view = db.components().insertView(); ComponentDto subview = db.components().insertComponent(ComponentTesting.newSubView(view)); ComponentDto pc = db.components().insertComponent(newProjectCopy("a", db.components().insertPrivateProject(), view)); insertMeasureFor(view, subview, pc); assertThat(getComponentUuidsOfMeasures()).containsOnly(view.uuid(), subview.uuid(), pc.uuid()); underTest.deleteNonRootComponentsInView(dbSession, singletonList(pc)); assertThat(getComponentUuidsOfMeasures()) .containsOnly(view.uuid(), subview.uuid()); underTest.deleteNonRootComponentsInView(dbSession, singletonList(subview)); assertThat(getComponentUuidsOfMeasures()) .containsOnly(view.uuid()); }
@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 persist_snapshots_with_leak_period() { OrganizationDto organizationDto = dbTester.organizations().insert(); ComponentDto viewDto = save(newView(organizationDto, "UUID_VIEW").setDbKey("KEY_VIEW")); ComponentDto subViewDto = save(newSubView(viewDto, "UUID_SUBVIEW", "KEY_SUBVIEW")); dbTester.getSession().commit(); Component subView = ViewsComponent.builder(SUBVIEW, "KEY_SUBVIEW").setUuid("UUID_SUBVIEW").build(); Component view = ViewsComponent.builder(VIEW, "KEY_VIEW").setUuid("UUID_VIEW").addChildren(subView).build(); treeRootHolder.setRoot(view); periodsHolder.setPeriod(new Period(LEAK_PERIOD_MODE_DATE, "2015-01-01", analysisDate, "u1")); underTest.execute(new TestComputationStepContext()); SnapshotDto viewSnapshot = getUnprocessedSnapshot(viewDto.uuid()); assertThat(viewSnapshot.getPeriodMode()).isEqualTo(LEAK_PERIOD_MODE_DATE); assertThat(viewSnapshot.getPeriodDate()).isEqualTo(analysisDate); assertThat(viewSnapshot.getPeriodModeParameter()).isNotNull(); }
@Test public void select_descendants_of_a_view_and_filter_by_name() { OrganizationDto organizationDto = db.organizations().insert(); ComponentDto view = newView(organizationDto, A_VIEW_UUID); db.components().insertViewAndSnapshot(view); // one subview ComponentDto subView = newSubView(view, "subview-uuid", "subview-key").setName("subview name"); db.components().insertComponent(subView); // one project and its copy linked to the view ComponentDto project = newPrivateProjectDto(organizationDto, PROJECT_UUID).setName("project name"); db.components().insertProjectAndSnapshot(project); db.components().insertComponent(newProjectCopy("project-copy-uuid", project, view)); ComponentTreeQuery dbQuery = newTreeQuery(A_VIEW_UUID).setNameOrKeyQuery("name").setStrategy(CHILDREN).build(); List<ComponentDto> components = underTest.selectDescendants(dbSession, dbQuery); assertThat(components).extracting("uuid").containsOnly("project-copy-uuid", "subview-uuid"); assertThat(components).extracting("organizationUuid").containsOnly(organizationDto.getUuid()); }
@Test public void persist_existing_empty_subview_under_existing_view() { ComponentDto viewDto = newViewDto(dbTester.organizations().insert()); persistComponents(viewDto); persistComponents(ComponentTesting.newSubView(viewDto, SUBVIEW_1_UUID, SUBVIEW_1_KEY).setName(SUBVIEW_1_NAME)); treeRootHolder.setRoot( createViewBuilder(PORTFOLIO) .addChildren( createSubView1Builder(null).build()) .build()); underTest.execute(new TestComputationStepContext()); assertRowsCountInTableProjects(2); assertDtoNotUpdated(VIEW_KEY); assertDtoNotUpdated(SUBVIEW_1_KEY); }