599c712fe54357932bfefcf10df76803a6fe178a
[mdsal.git] / binding / mdsal-binding-java-api-generator / src / test / java / org / opendaylight / mdsal / binding / java / api / generator / test / FileSearchUtil.java
1 /*
2  * Copyright (c) 2020 Pantheon Technologies, s.r.o.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.mdsal.binding.java.api.generator.test;
9
10 import java.io.File;
11 import java.io.IOException;
12 import java.nio.file.Files;
13 import java.util.HashMap;
14 import java.util.Map;
15
16 final class FileSearchUtil {
17     private static final String LS = System.lineSeparator();
18     static final String TAB = "    ";
19     static final String DOUBLE_TAB = TAB.repeat(2);
20     static final String TRIPLE_TAB = TAB.repeat(3);
21
22     private FileSearchUtil() {
23         // Hidden on purpose
24     }
25
26     static void assertFileContains(final File file, final String searchText) throws IOException {
27         assertFileContains(file, Files.readString(file.toPath()), searchText);
28     }
29
30     static void assertFileContains(final File file, final String fileContent, final String searchText) {
31         if (!fileContent.contains(searchText)) {
32             throw new AssertionError("File " + file + " does not contain '" + searchText + "'");
33         }
34     }
35
36     static void assertFileContainsConsecutiveLines(final File file, final String fileContent, final String ... lines) {
37         for (final String line : lines) {
38             assertFileContains(file, fileContent, line);
39         }
40         assertFileContains(file, fileContent, String.join(LS, lines));
41     }
42
43     static Map<String, File> getFiles(final File path) {
44         final Map<String, File> ret = new HashMap<>();
45         getFiles(path, ret);
46         return ret;
47     }
48
49     private static void getFiles(final File path, final Map<String, File> files) {
50         final File [] dirFiles = path.listFiles();
51         for (File file : dirFiles) {
52             if (file.isDirectory()) {
53                 getFiles(file, files);
54             }
55
56             files.put(file.getName(), file);
57         }
58     }
59
60     static String tab(final String line) {
61         return TAB + line;
62     }
63
64     static String doubleTab(final String line) {
65         return DOUBLE_TAB + line;
66     }
67
68     static String tripleTab(final String line) {
69         return TRIPLE_TAB + line;
70     }
71 }