Refactor FileSearchUtil 84/93584/9
authorIllia <illia.ihushev@pantheon.tech>
Wed, 4 Nov 2020 15:05:15 +0000 (17:05 +0200)
committerIllia <illia.ihushev@pantheon.tech>
Fri, 6 Nov 2020 16:03:18 +0000 (18:03 +0200)
Migrate to Java 11.
Add method for verifying containment of consecutive lines.
Add methods which add different level indentation.

Change-Id: I54fff1d1f840375102eed479a3cb338085e03762
Signed-off-by: Illia <illia.ihushev@pantheon.tech>
binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/FileSearchUtil.java

index b8bfa34c950d38275ff31792ad557a1e42fa3809..599c712fe54357932bfefcf10df76803a6fe178a 100644 (file)
@@ -8,25 +8,36 @@
 package org.opendaylight.mdsal.binding.java.api.generator.test;
 
 import java.io.File;
-import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.nio.file.Files;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Scanner;
 
 final class FileSearchUtil {
+    private static final String LS = System.lineSeparator();
+    static final String TAB = "    ";
+    static final String DOUBLE_TAB = TAB.repeat(2);
+    static final String TRIPLE_TAB = TAB.repeat(3);
+
     private FileSearchUtil() {
         // Hidden on purpose
     }
 
-    static void assertFileContains(final File file, final String searchText) throws FileNotFoundException {
-        try (Scanner scanner = new Scanner(file)) {
-            while (scanner.hasNextLine()) {
-                if (scanner.nextLine().contains(searchText)) {
-                    return;
-                }
-            }
+    static void assertFileContains(final File file, final String searchText) throws IOException {
+        assertFileContains(file, Files.readString(file.toPath()), searchText);
+    }
+
+    static void assertFileContains(final File file, final String fileContent, final String searchText) {
+        if (!fileContent.contains(searchText)) {
+            throw new AssertionError("File " + file + " does not contain '" + searchText + "'");
+        }
+    }
+
+    static void assertFileContainsConsecutiveLines(final File file, final String fileContent, final String ... lines) {
+        for (final String line : lines) {
+            assertFileContains(file, fileContent, line);
         }
-        throw new AssertionError("File " + file + " does not contain '" + searchText + "'");
+        assertFileContains(file, fileContent, String.join(LS, lines));
     }
 
     static Map<String, File> getFiles(final File path) {
@@ -45,4 +56,16 @@ final class FileSearchUtil {
             files.put(file.getName(), file);
         }
     }
+
+    static String tab(final String line) {
+        return TAB + line;
+    }
+
+    static String doubleTab(final String line) {
+        return DOUBLE_TAB + line;
+    }
+
+    static String tripleTab(final String line) {
+        return TRIPLE_TAB + line;
+    }
 }