Specialize relative leafref types during instantiation
[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 static org.hamcrest.CoreMatchers.containsString;
11 import static org.hamcrest.MatcherAssert.assertThat;
12
13 import java.io.File;
14 import java.io.IOException;
15 import java.nio.file.Files;
16 import java.util.HashMap;
17 import java.util.Map;
18
19 final class FileSearchUtil {
20     private static final String LS = System.lineSeparator();
21     static final String TAB = "    ";
22     static final String DOUBLE_TAB = TAB.repeat(2);
23     static final String TRIPLE_TAB = TAB.repeat(3);
24
25     private FileSearchUtil() {
26         // Hidden on purpose
27     }
28
29     static void assertFileContains(final File file, final String searchText) throws IOException {
30         assertFileContains(Files.readString(file.toPath()), searchText);
31     }
32
33     static void assertFileContains(final String fileContent, final String searchText) {
34         assertThat(fileContent, containsString(searchText));
35     }
36
37     static void assertFileContainsConsecutiveLines(final File file, final String fileContent, final String ... lines) {
38         for (final String line : lines) {
39             assertFileContains(fileContent, line);
40         }
41         assertFileContains(fileContent, String.join(LS, lines));
42     }
43
44     static Map<String, File> getFiles(final File path) {
45         final Map<String, File> ret = new HashMap<>();
46         getFiles(path, ret);
47         return ret;
48     }
49
50     private static void getFiles(final File path, final Map<String, File> files) {
51         final File [] dirFiles = path.listFiles();
52         for (File file : dirFiles) {
53             if (file.isDirectory()) {
54                 getFiles(file, files);
55             }
56
57             files.put(file.getName(), file);
58         }
59     }
60
61     static String tab(final String line) {
62         return TAB + line;
63     }
64
65     static String doubleTab(final String line) {
66         return DOUBLE_TAB + line;
67     }
68
69     static String tripleTab(final String line) {
70         return TRIPLE_TAB + line;
71     }
72 }