From b8a99c760e28b0651cb79d2f9260c7b6e1680153 Mon Sep 17 00:00:00 2001 From: Muntazir Fadhel Date: Wed, 14 Dec 2022 16:15:08 -0500 Subject: [PATCH] Impelement language agnostic files() method for ProjectFiles --- pom.xml | 2 +- .../hadii/clarpse/compiler/ProjectFiles.java | 6 +++ .../java/com/hadii/test/ProjectFilesTest.java | 41 +++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e66a558..1471d43 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ com.github.hadii-tech clarpse - 7.1.0 + 7.1.1 jar ${project.groupId}:${project.artifactId} diff --git a/src/main/java/com/hadii/clarpse/compiler/ProjectFiles.java b/src/main/java/com/hadii/clarpse/compiler/ProjectFiles.java index 3611eb1..db85fe2 100644 --- a/src/main/java/com/hadii/clarpse/compiler/ProjectFiles.java +++ b/src/main/java/com/hadii/clarpse/compiler/ProjectFiles.java @@ -173,6 +173,12 @@ public final Collection files(Lang language) { return this.langToFilesMap.getOrDefault(language, new ArrayList<>()); } + public final Collection files() { + Set allFiles = new HashSet<>(); + this.langToFilesMap.forEach((lang, files) -> allFiles.addAll(files)); + return allFiles; + } + public String projectDir() { if (this.projectDir != null && !this.projectDir.isEmpty()) { return this.projectDir; diff --git a/src/test/java/com/hadii/test/ProjectFilesTest.java b/src/test/java/com/hadii/test/ProjectFilesTest.java index 93eb104..5921f9c 100644 --- a/src/test/java/com/hadii/test/ProjectFilesTest.java +++ b/src/test/java/com/hadii/test/ProjectFilesTest.java @@ -136,6 +136,47 @@ public void testProjectFilesSize() { assertEquals(2, pfs.size()); } + @Test + public void testGetAllFiles() { + ProjectFiles pfs = new ProjectFiles(); + pfs.insertFile(new ProjectFile("/test.java", "{}")); + pfs.insertFile(new ProjectFile("/tester.go", "{}")); + assertEquals(2, pfs.files().size()); + } + + @Test + public void testGetAllGoFiles() { + ProjectFiles pfs = new ProjectFiles(); + pfs.insertFile(new ProjectFile("/test.java", "{}")); + pfs.insertFile(new ProjectFile("/tester.go", "{}")); + assertEquals(1, pfs.files(Lang.GOLANG).size()); + } + + @Test + public void testGetAllFilesForNonExistentLang() { + ProjectFiles pfs = new ProjectFiles(); + pfs.insertFile(new ProjectFile("/test.java", "{}")); + pfs.insertFile(new ProjectFile("/tester.go", "{}")); + assertEquals(0, pfs.files(Lang.JAVASCRIPT).size()); + } + + @Test + public void testGetAllJavaFiles() { + ProjectFiles pfs = new ProjectFiles(); + pfs.insertFile(new ProjectFile("/test.java", "{}")); + pfs.insertFile(new ProjectFile("/tester.go", "{}")); + assertEquals(1, pfs.files(Lang.JAVA).size()); + } + + @Test + public void testGetAllJSFiles() { + ProjectFiles pfs = new ProjectFiles(); + pfs.insertFile(new ProjectFile("/test.js", "{}")); + pfs.insertFile(new ProjectFile("/tester.go", "{}")); + assertEquals(1, pfs.files(Lang.JAVASCRIPT).size()); + } + + @Test public void testEmptyProjectFilesSize() { ProjectFiles pfs = new ProjectFiles();