2 * Copyright (c) 2020 Pantheon Technologies, s.r.o. All rights reserved.
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
8 package org.opendaylight.mdsal.binding.java.api.generator;
10 import static org.hamcrest.CoreMatchers.containsString;
11 import static org.hamcrest.MatcherAssert.assertThat;
14 import java.io.IOException;
15 import java.nio.file.Files;
16 import java.util.HashMap;
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);
25 private FileSearchUtil() {
29 static void assertFileContains(final File file, final String searchText) throws IOException {
30 assertFileContains(Files.readString(file.toPath()), searchText);
33 static void assertFileContains(final String fileContent, final String searchText) {
34 assertThat(fileContent, containsString(searchText));
37 static void assertFileContainsConsecutiveLines(final File file, final String fileContent, final String ... lines) {
38 for (final String line : lines) {
39 assertFileContains(fileContent, line);
41 assertFileContains(fileContent, String.join(LS, lines));
44 static Map<String, File> getFiles(final File path) {
45 final Map<String, File> ret = new HashMap<>();
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);
57 files.put(file.getName(), file);
61 static String tab(final String line) {
65 static String doubleTab(final String line) {
66 return DOUBLE_TAB + line;
69 static String tripleTab(final String line) {
70 return TRIPLE_TAB + line;