Browse Source

Merge pull request #607 from nestabentum/fix_test_case_junkfiles

Fix TestCase Junk files
Timur Sağlam 4 years ago
parent
commit
052ce1b08f

+ 4 - 3
jplag/src/main/java/de/jplag/reporting/jsonfactory/ComparisonReportWriter.java

@@ -15,12 +15,13 @@ import de.jplag.reporting.reportobject.model.Match;
  */
 public class ComparisonReportWriter {
 
-    private static final FileWriter FILE_WRITER = new FileWriter();
+    private final FileWriter fileWriter;
     private final Function<Submission, String> submissionToIdFunction;
     private final Map<String, Map<String, String>> submissionIdToComparisonFileName = new HashMap<>();
 
-    public ComparisonReportWriter(Function<Submission, String> submissionToIdFunction) {
+    public ComparisonReportWriter(Function<Submission, String> submissionToIdFunction, FileWriter fileWriter) {
         this.submissionToIdFunction = submissionToIdFunction;
+        this.fileWriter = fileWriter;
     }
 
     /**
@@ -48,7 +49,7 @@ public class ComparisonReportWriter {
             addToLookUp(firstSubmissionId, secondSubmissionId, fileName);
             var comparisonReport = new ComparisonReport(firstSubmissionId, secondSubmissionId, comparison.similarity(),
                     convertMatchesToReportMatches(jPlagResult, comparison));
-            FILE_WRITER.saveAsJSON(comparisonReport, path, fileName);
+            fileWriter.saveAsJSON(comparisonReport, path, fileName);
         }
     }
 

+ 13 - 0
jplag/src/main/java/de/jplag/reporting/jsonfactory/DummyWriter.java

@@ -0,0 +1,13 @@
+package de.jplag.reporting.jsonfactory;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class DummyWriter implements FileWriter {
+    private static final Logger logger = LoggerFactory.getLogger(DummyWriter.class);
+
+    @Override
+    public void saveAsJSON(Object fileToSave, String folderPath, String fileName) {
+        logger.info("DummyWriter writes object " + fileToSave + " to path " + folderPath + " with name " + fileName + " as JSON.");
+    }
+}

+ 2 - 26
jplag/src/main/java/de/jplag/reporting/jsonfactory/FileWriter.java

@@ -1,29 +1,5 @@
 package de.jplag.reporting.jsonfactory;
 
-import java.io.IOException;
-import java.nio.file.Path;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-public class FileWriter {
-    private static final Logger logger = LoggerFactory.getLogger(FileWriter.class);
-
-    private static final ObjectMapper objectMapper = new ObjectMapper();
-
-    /**
-     * Saves the provided object to the provided path under the provided name
-     * @param fileToSave The object to save
-     * @param folderPath The path to save the object to
-     * @param fileName The name to save the object under
-     */
-    public void saveAsJSON(Object fileToSave, String folderPath, String fileName) {
-        try {
-            objectMapper.writeValue(Path.of(folderPath, fileName).toFile(), fileToSave);
-        } catch (IOException e) {
-            logger.error("Failed to save json file " + fileName + ": " + e.getMessage(), e);
-        }
-    }
+public interface FileWriter {
+    void saveAsJSON(Object fileToSave, String folderPath, String fileName);
 }

+ 30 - 0
jplag/src/main/java/de/jplag/reporting/jsonfactory/ToDiskWriter.java

@@ -0,0 +1,30 @@
+package de.jplag.reporting.jsonfactory;
+
+import java.io.IOException;
+import java.nio.file.Path;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class ToDiskWriter implements FileWriter {
+    private static final Logger logger = LoggerFactory.getLogger(ToDiskWriter.class);
+
+    private static final ObjectMapper objectMapper = new ObjectMapper();
+
+    /**
+     * Saves the provided object to the provided path under the provided name
+     * @param fileToSave The object to save
+     * @param folderPath The path to save the object to
+     * @param fileName The name to save the object under
+     */
+    @Override
+    public void saveAsJSON(Object fileToSave, String folderPath, String fileName) {
+        try {
+            objectMapper.writeValue(Path.of(folderPath, fileName).toFile(), fileToSave);
+        } catch (IOException e) {
+            logger.error("Failed to save json file " + fileName + ": " + e.getMessage(), e);
+        }
+    }
+}

+ 3 - 3
jplag/src/main/java/de/jplag/reporting/reportobject/ReportObjectFactory.java

@@ -20,7 +20,7 @@ import de.jplag.JPlagResult;
 import de.jplag.Language;
 import de.jplag.Submission;
 import de.jplag.reporting.jsonfactory.ComparisonReportWriter;
-import de.jplag.reporting.jsonfactory.FileWriter;
+import de.jplag.reporting.jsonfactory.ToDiskWriter;
 import de.jplag.reporting.reportobject.mapper.ClusteringResultMapper;
 import de.jplag.reporting.reportobject.mapper.MetricMapper;
 import de.jplag.reporting.reportobject.model.Metric;
@@ -33,7 +33,7 @@ import de.jplag.reporting.reportobject.model.OverviewReport;
 public class ReportObjectFactory {
     private static final Logger logger = LoggerFactory.getLogger(ReportObjectFactory.class);
 
-    private static final FileWriter fileWriter = new FileWriter();
+    private static final ToDiskWriter fileWriter = new ToDiskWriter();
     public static final String OVERVIEW_FILE_NAME = "overview.json";
     public static final String SUBMISSIONS_FOLDER = "submissions";
     private Map<String, String> submissionNameToIdMap;
@@ -109,7 +109,7 @@ public class ReportObjectFactory {
     }
 
     private void writeComparisons(JPlagResult result, String path) {
-        ComparisonReportWriter comparisonReportWriter = new ComparisonReportWriter(submissionToIdFunction);
+        ComparisonReportWriter comparisonReportWriter = new ComparisonReportWriter(submissionToIdFunction, fileWriter);
         submissionNameToNameToComparisonFileName = comparisonReportWriter.writeComparisonReports(result, path);
     }
 

+ 5 - 2
jplag/src/test/java/de/jplag/reporting/reportobject/mapper/ComparisonReportWriterTest.java

@@ -10,13 +10,16 @@ import de.jplag.Submission;
 import de.jplag.TestBase;
 import de.jplag.exceptions.ExitException;
 import de.jplag.reporting.jsonfactory.ComparisonReportWriter;
+import de.jplag.reporting.jsonfactory.DummyWriter;
+import de.jplag.reporting.jsonfactory.FileWriter;
 
 public class ComparisonReportWriterTest extends TestBase {
+    private final FileWriter fileWriter = new DummyWriter();
 
     @Test
     public void firsLevelOfLookupMapComplete() throws ExitException {
         JPlagResult result = runJPlagWithDefaultOptions("PartialPlagiarism");
-        var mapper = new ComparisonReportWriter(Submission::getName);
+        var mapper = new ComparisonReportWriter(Submission::getName, fileWriter);
 
         Map<String, Map<String, String>> stringMapMap = mapper.writeComparisonReports(result, "");
 
@@ -26,7 +29,7 @@ public class ComparisonReportWriterTest extends TestBase {
     @Test
     public void secondLevelOfLookupMapComplete() throws ExitException {
         JPlagResult result = runJPlagWithDefaultOptions("PartialPlagiarism");
-        var mapper = new ComparisonReportWriter(Submission::getName);
+        var mapper = new ComparisonReportWriter(Submission::getName, fileWriter);
 
         Map<String, Map<String, String>> stringMapMap = mapper.writeComparisonReports(result, "");