private static ComponentDto newFileDto(ComponentDto moduleOrProject, int i) { return newFileDto(moduleOrProject, null, i); }
@Test public void return_leaves() { ComponentDto project = newPrivateProjectDto(db.getDefaultOrganization(), "project-uuid"); db.components().insertProjectAndSnapshot(project); ComponentDto module = newModuleDto("module-uuid-1", project); db.components().insertComponent(module); db.components().insertComponent(newFileDto(project, 1)); db.components().insertComponent(newFileDto(module, 2)); ComponentDto directory = newDirectory(project, "directory-path-1"); db.components().insertComponent(directory); db.components().insertComponent(newFileDto(module, directory, 3)); db.commit(); logInWithBrowsePermission(project); TreeWsResponse response = ws.newRequest() .setParam(PARAM_STRATEGY, "leaves") .setParam(PARAM_COMPONENT_ID, "project-uuid") .setParam(PARAM_QUALIFIERS, FILE).executeProtobuf(TreeWsResponse.class); assertThat(response.getComponentsCount()).isEqualTo(3); assertThat(response.getPaging().getTotal()).isEqualTo(3); assertThat(response.getComponentsList()).extracting("id").containsExactly("file-uuid-1", "file-uuid-2", "file-uuid-3"); }
@Test public void return_descendants() { ComponentDto project = newPrivateProjectDto(db.getDefaultOrganization(), "project-uuid"); SnapshotDto projectSnapshot = db.components().insertProjectAndSnapshot(project); ComponentDto module = newModuleDto("module-uuid-1", project); db.components().insertComponent(module); db.components().insertComponent(newFileDto(project, 10)); for (int i = 2; i <= 9; i++) { db.components().insertComponent(newFileDto(module, i)); } ComponentDto directory = newDirectory(module, "directory-path-1"); db.components().insertComponent(directory); db.components().insertComponent(newFileDto(module, directory, 1)); db.commit(); logInWithBrowsePermission(project); TreeWsResponse response = ws.newRequest() .setParam(PARAM_STRATEGY, "all") .setParam(PARAM_COMPONENT_ID, "module-uuid-1") .setParam(Param.PAGE, "2") .setParam(Param.PAGE_SIZE, "3") .setParam(Param.TEXT_QUERY, "file-name") .setParam(Param.ASCENDING, "true") .setParam(Param.SORT, "path").executeProtobuf(TreeWsResponse.class); assertThat(response.getComponentsCount()).isEqualTo(3); assertThat(response.getPaging().getTotal()).isEqualTo(9); assertThat(response.getComponentsList()).extracting("id").containsExactly("file-uuid-4", "file-uuid-5", "file-uuid-6"); }
@Test public void return_children() { ComponentDto project = newPrivateProjectDto(db.organizations().insert(), "project-uuid"); db.components().insertProjectAndSnapshot(project); ComponentDto module = newModuleDto("module-uuid-1", project); db.components().insertComponent(module); db.components().insertComponent(newFileDto(project, 1)); for (int i = 2; i <= 9; i++) { db.components().insertComponent(newFileDto(module, i)); } ComponentDto directory = newDirectory(module, "directory-path-1"); db.components().insertComponent(directory); db.components().insertComponent(newFileDto(module, directory, 10)); db.commit(); logInWithBrowsePermission(project); TreeWsResponse response = ws.newRequest() .setParam(PARAM_STRATEGY, "children") .setParam(PARAM_COMPONENT_ID, "module-uuid-1") .setParam(Param.PAGE, "2") .setParam(Param.PAGE_SIZE, "3") .setParam(Param.TEXT_QUERY, "file-name") .setParam(Param.ASCENDING, "false") .setParam(Param.SORT, "name").executeProtobuf(TreeWsResponse.class); assertThat(response.getComponentsCount()).isEqualTo(3); assertThat(response.getPaging().getTotal()).isEqualTo(8); assertThat(response.getComponentsList()).extracting("id").containsExactly("file-uuid-6", "file-uuid-5", "file-uuid-4"); }
@Test public void filter_descendants_by_qualifier() { ComponentDto project = newPrivateProjectDto(db.organizations().insert(), "project-uuid"); db.components().insertProjectAndSnapshot(project); db.components().insertComponent(newFileDto(project, 1)); db.components().insertComponent(newFileDto(project, 2)); db.components().insertComponent(newModuleDto("module-uuid-1", project)); db.commit(); logInWithBrowsePermission(project); TreeWsResponse response = ws.newRequest() .setParam(PARAM_STRATEGY, "all") .setParam(PARAM_QUALIFIERS, FILE) .setParam(PARAM_COMPONENT_ID, "project-uuid").executeProtobuf(TreeWsResponse.class); assertThat(response.getComponentsList()).extracting("id").containsExactly("file-uuid-1", "file-uuid-2"); }
@Test public void sort_descendants_by_qualifier() { ComponentDto project = newPrivateProjectDto(db.organizations().insert(), "project-uuid"); db.components().insertProjectAndSnapshot(project); db.components().insertComponent(newFileDto(project, 1)); db.components().insertComponent(newFileDto(project, 2)); ComponentDto module = newModuleDto("module-uuid-1", project); db.components().insertComponent(module); db.components().insertComponent(newDirectory(project, "path/directory/", "directory-uuid-1")); db.commit(); logInWithBrowsePermission(project); TreeWsResponse response = ws.newRequest() .setParam(PARAM_STRATEGY, "all") .setParam(Param.SORT, "qualifier, name") .setParam(PARAM_COMPONENT_ID, "project-uuid").executeProtobuf(TreeWsResponse.class); assertThat(response.getComponentsList()).extracting("id").containsExactly("module-uuid-1", "path/directory/", "file-uuid-1", "file-uuid-2"); }