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.test;
11 import java.io.IOException;
12 import java.nio.file.Files;
13 import java.util.HashMap;
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);
22 private FileSearchUtil() {
26 static void assertFileContains(final File file, final String searchText) throws IOException {
27 assertFileContains(file, Files.readString(file.toPath()), searchText);
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 + "'");
36 static void assertFileContainsConsecutiveLines(final File file, final String fileContent, final String ... lines) {
37 for (final String line : lines) {
38 assertFileContains(file, fileContent, line);
40 assertFileContains(file, fileContent, String.join(LS, lines));
43 static Map<String, File> getFiles(final File path) {
44 final Map<String, File> ret = new HashMap<>();
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);
56 files.put(file.getName(), file);
60 static String tab(final String line) {
64 static String doubleTab(final String line) {
65 return DOUBLE_TAB + line;
68 static String tripleTab(final String line) {
69 return TRIPLE_TAB + line;