public ProjectRepositories addFileDataToModule(String moduleKey, @Nullable String path, FileData fileData) { if (path == null || (fileData.hash() == null && fileData.revision() == null)) { return this; } SingleProjectRepository repository = repositoryPerModule.computeIfAbsent(moduleKey, k -> new SingleProjectRepository()); repository.addFileData(path, fileData); return this; }
private static void addFileData(SingleProjectRepository data, List<FilePathWithHashDto> files) { for (FilePathWithHashDto file : files) { FileData fileData = new FileData(file.getSrcHash(), file.getRevision()); data.addFileData(file.getPath(), fileData); } }
@Test public void add_file_data() { FileData fileData = new FileData("123", "456"); repository.addFileData("/Abc.java", fileData); assertThat(repository.fileData()).hasSize(1); assertThat(repository.fileData()).contains(Maps.immutableEntry("/Abc.java", fileData)); assertThat(repository.fileDataByPath("/Abc.java")).isEqualTo(fileData); }
@Test public void add_file_data_doesnt_add_the_file_without_path() { FileData fileData = new FileData("123", "456"); repository.addFileData(null, fileData); assertThat(repository.fileData()).hasSize(0); }
@Test public void add_file_data_doesnt_add_the_file_without_revision_and_hash() { FileData fileData = new FileData(null, null); repository.addFileData("/Abc.java", fileData); assertThat(repository.fileData()).hasSize(0); } }
@Test public void use_new_file_structure_for_projects_without_submodules() { String projectKey = "org.codehaus.sonar:sonar"; ProjectRepositories projectRepositories = new SingleProjectRepository() .addFileData("src/main/java/SomeClass.java", new FileData("789456", "123456789")); when(projectDataLoader.load(any(ProjectDataQuery.class))).thenReturn(projectRepositories); WsProjectResponse wsProjectResponse = ws.newRequest() .setParam("key", projectKey) .setParam("profile", "Default") .executeProtobuf(WsProjectResponse.class); assertThat(wsProjectResponse.getFileDataByModuleAndPathMap()).isEmpty(); assertThat(wsProjectResponse.getFileDataByPathCount()).isEqualTo(1); assertThat(wsProjectResponse.getFileDataByPathMap().get("src/main/java/SomeClass.java")).isNotNull(); }
public ProjectRepositories addFileDataToModule(String moduleKey, @Nullable String path, FileData fileData) { if (path == null || (fileData.hash() == null && fileData.revision() == null)) { return this; } SingleProjectRepository repository = repositoryPerModule.computeIfAbsent(moduleKey, k -> new SingleProjectRepository()); repository.addFileData(path, fileData); return this; }