Decouple TXT Report file writing and formatting logic (5/6) 16/109416/2
authorFrancis Toth <francis.toth@yoppworks.com>
Thu, 18 Jun 2020 19:46:31 +0000 (15:46 -0400)
committerOfir Sonsino <ofir.sonsino@intl.att.com>
Tue, 23 Jun 2020 11:28:53 +0000 (11:28 +0000)
This commit aims to move the reportEndOfToolRun function from ReportManager (deprecated) to ReportFile.

Signed-off-by: Francis Toth <francis.toth@yoppworks.com>
Change-Id: I17731864c34ed9a70b1b1e91b89bad835dc72449
Issue-ID: SDC-2499

asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/report/ReportFile.java
asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/validator/utils/ReportManager.java
asdctool/src/main/java/org/openecomp/sdc/asdctool/main/ValidationTool.java
asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/report/ReportFileNioHelper.java
asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/tasks/artifacts/ArtifactValidationUtilsTest.java
asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/utils/ReportManagerTest.java

index b22edb6..b483964 100644 (file)
@@ -95,6 +95,21 @@ public class ReportFile {
             writer.writeln("");
             writer.write(sb.toString());
         }
+
+        public void reportEndOfToolRun(Report report) {
+            StrBuilder sb = new StrBuilder();
+            sb.appendln("-----------------------------------Validator Tool Summary-----------------------------------");
+            report.forEachFailure((taskName, failedVertices) -> {
+                sb.append("Task: ")
+                    .append(taskName)
+                    .appendNewLine()
+                    .append("FailedVertices: ")
+                    .append(String.valueOf(failedVertices))
+                    .appendNewLine();
+            });
+            writer.writeln("");
+            writer.write(sb.toString());
+        }
     }
 
     /**
index a733eec..9b09e67 100644 (file)
@@ -68,16 +68,4 @@ public class ReportManager {
             log.info("write to file failed - {}", e.getClass().getSimpleName(), e);
         }
     }
-
-    public static void reportEndOfToolRun(Report report, String outputFilePath) {
-        StrBuilder sb = new StrBuilder();
-        sb.appendln("-----------------------------------Validator Tool Summary-----------------------------------");
-        report.forEachFailure((taskName, failedVertices) -> {
-            sb.append("Task: " + taskName);
-            sb.appendNewLine();
-            sb.append("FailedVertices: " + failedVertices);
-            sb.appendNewLine();
-        });
-        writeReportLineToFile(sb.toString(), outputFilePath);
-    }
 }
index d84f0a5..3bffa0b 100644 (file)
@@ -59,7 +59,7 @@ public class ValidationTool {
         log.info("Start Validation Tool");
         Report report = Report.make();
         boolean result = validationToolBL.validateAll(report, textFile, txtReportFilePath);
-        ReportManager.reportEndOfToolRun(report, txtReportFilePath);
+        textFile.reportEndOfToolRun(report);
         csvFile.printAllResults(report);
         if (result) {
             log.info("Validation finished successfully");
index d6d03a9..cd35f4b 100644 (file)
@@ -27,8 +27,10 @@ import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.util.List;
+import java.util.function.Consumer;
 import java.util.function.Function;
 import java.util.stream.Collectors;
+import org.openecomp.sdc.asdctool.impl.validator.report.ReportFile.TXTFile;
 
 /**
  * Provides facilities to for writing report files when testing
@@ -55,6 +57,19 @@ public class ReportFileNioHelper {
         }
     }
 
+    /**
+     * Provides a transactional context for TXT report file writing
+     *
+     * @param txtReportFilePath The resulting file path
+     * @param f                 The function consuming the TXT file
+     */
+    public static void withTxtFile(String txtReportFilePath, Consumer<TXTFile> f) {
+        withTxtFile(txtReportFilePath, file -> {
+            f.accept(file);
+            return null;
+        });
+    }
+
    /**
      * Provides a transactional context for TXT report file writing
      *
index 7b35373..763c69f 100644 (file)
@@ -27,6 +27,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.when;
+import static org.openecomp.sdc.asdctool.impl.validator.report.ReportFileNioHelper.readFileAsList;
+import static org.openecomp.sdc.asdctool.impl.validator.report.ReportFileNioHelper.withTxtFile;
 
 import fj.data.Either;
 import java.io.File;
@@ -137,22 +139,24 @@ public class ArtifactValidationUtilsTest {
         artifacts.add(artifactDataDefinitionNotInCassandra);
 
         // when
-        ArtifactsVertexResult result =
-            testSubject.validateArtifactsAreInCassandra(report, vertex, TASK_NAME, artifacts, txtReportFilePath);
-        ReportManager.reportEndOfToolRun(report, txtReportFilePath);
-
-        List<String> reportOutputFile = ReportManagerHelper.getReportOutputFileAsList(txtReportFilePath);
-
-        // then
-        assertFalse(result.getStatus());
-        assertEquals(1, result.notFoundArtifacts.size());
-        assertEquals(UNIQUE_ID, result.notFoundArtifacts.iterator().next());
-
-        assertEquals("Artifact " + ES_ID + " is in Cassandra", reportOutputFile.get(2));
-        assertEquals("Artifact " + ES_ID_NOT_IN_CASS + " doesn't exist in Cassandra",
-            reportOutputFile.get(3));
-        assertEquals("Task: " + TASK_NAME, reportOutputFile.get(5));
-        assertEquals("FailedVertices: [" + UNIQUE_ID_VERTEX + "]", reportOutputFile.get(6));
+        withTxtFile(txtReportFilePath, file -> {
+            ArtifactsVertexResult result =
+                testSubject.validateArtifactsAreInCassandra(report, vertex, TASK_NAME, artifacts, txtReportFilePath);
+            file.reportEndOfToolRun(report);
+
+            List<String> reportOutputFile = readFileAsList(txtReportFilePath);
+
+            // then
+            assertFalse(result.getStatus());
+            assertEquals(1, result.notFoundArtifacts.size());
+            assertEquals(UNIQUE_ID, result.notFoundArtifacts.iterator().next());
+
+            assertEquals("Artifact " + ES_ID + " is in Cassandra", reportOutputFile.get(2));
+            assertEquals("Artifact " + ES_ID_NOT_IN_CASS + " doesn't exist in Cassandra",
+                reportOutputFile.get(3));
+            assertEquals("Task: " + TASK_NAME, reportOutputFile.get(5));
+            assertEquals("FailedVertices: [" + UNIQUE_ID_VERTEX + "]", reportOutputFile.get(6));
+        });
     }
 
     @Test
index e78ab31..d2276fd 100644 (file)
@@ -110,15 +110,17 @@ public class ReportManagerTest {
         Report report = Report.make();
         report.addFailure(TASK_1_NAME, VERTEX_1_ID);
 
-        ReportManager.reportEndOfToolRun(report, txtReportFilePath);
-        List<String> reportOutputFile = ReportManagerHelper.getReportOutputFileAsList(txtReportFilePath);
+        List<String> reportTxtFile = ReportFileNioHelper.withTxtFile(txtReportFilePath, file -> {
+            file.reportEndOfToolRun(report);
+            return ReportFileNioHelper.readFileAsList(txtReportFilePath);
+        });
 
         // then
-        assertNotNull(reportOutputFile);
-        assertEquals(EXPECTED_OUTPUT_FILE_HEADER, reportOutputFile.get(0));
-        assertEquals(EXPECTED_OUTPUT_FILE_SUMMARY, reportOutputFile.get(2));
-        assertEquals("Task: " + TASK_1_NAME, reportOutputFile.get(3));
-        assertEquals("FailedVertices: [" + VERTEX_1_ID + "]", reportOutputFile.get(4));
+        assertNotNull(reportTxtFile);
+        assertEquals(EXPECTED_OUTPUT_FILE_HEADER, reportTxtFile.get(0));
+        assertEquals(EXPECTED_OUTPUT_FILE_SUMMARY, reportTxtFile.get(2));
+        assertEquals("Task: " + TASK_1_NAME, reportTxtFile.get(3));
+        assertEquals("FailedVertices: [" + VERTEX_1_ID + "]", reportTxtFile.get(4));
     }
 
     @Test