/*
* Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.codepipeline.jenkinsplugin;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import org.apache.commons.io.FileUtils;
public class TestUtils {
public static final String TEST_DIR = "TestDir";
private static final String EXTRA_TEST_DIR = "ExtraTestDir";
public static void assertContainsIgnoreCase(final String strToMatch, final String strToCheck) {
final String strToMatchLower = strToMatch.toLowerCase();
final String strToCheckLower = strToCheck.toLowerCase();
assertTrue(strToCheckLower.contains(strToMatchLower));
}
public static void assertEqualsIgnoreCase(final String strToMatch, final String strToCheck) {
final String strToMatchLower = strToMatch.toLowerCase();
final String strToCheckLower = strToCheck.toLowerCase();
assertEquals(strToMatchLower, strToCheckLower);
}
public static ByteArrayOutputStream setOutputStream() {
final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
System.setOut(new PrintStream(outContent));
return outContent;
}
public static void initializeTestingFolders() throws IOException {
// TEST_DIR
Files.createDirectories(Paths.get(TEST_DIR, "Dir1", "SubDir1"));
Files.createDirectories(Paths.get(TEST_DIR, "Dir1", "SubDir2", "SubDir3"));
Files.createDirectories(Paths.get(TEST_DIR, "Dir2"));
Files.createFile(Paths.get(TEST_DIR, "bbb.txt"));
Files.createFile(Paths.get(TEST_DIR, "Dir1", "out.txt"));
Files.createFile(Paths.get(TEST_DIR, "Dir1", "SubDir1", "aaa.txt"));
Files.createFile(Paths.get(TEST_DIR, "Dir1", "SubDir2", "SubDir3", "onemoretime.txt"));
Files.createFile(Paths.get(TEST_DIR, "Dir2", "333.txt"));
// EXTRA_TEST_DIR
Files.createDirectories(Paths.get(EXTRA_TEST_DIR, "of"));
Files.createFile(Paths.get(EXTRA_TEST_DIR, "life.txt"));
Files.createFile(Paths.get(EXTRA_TEST_DIR, "of", "brian.py"));
}
public static void addSymlinkToFolderInsideWorkspace() throws IOException {
Files.createSymbolicLink(Paths.get(TEST_DIR, "SymlinkDir"), Paths.get("Dir1"));
}
public static void addSymlinkToFileInsideWorkspace() throws IOException {
Files.createSymbolicLink(Paths.get(TEST_DIR, "SymlinkFile"), Paths.get("Dir1", "out.txt"));
}
public static void addSymlinkToFolderOutsideWorkspace() throws IOException {
Files.createSymbolicLink(Paths.get(TEST_DIR, "SymlinkDir"), Paths.get("..", EXTRA_TEST_DIR));
}
public static void addSymlinkToCreateCycleInWorkspace() throws IOException {
Files.createSymbolicLink(Paths.get(TEST_DIR, "Dir1", "Cycle"), Paths.get("..", "Dir1"));
}
public static void removeSymlinkCycle() throws IOException {
FileUtils.deleteQuietly(Paths.get(TEST_DIR, "Dir1", "Cycle").toFile());
}
public static void cleanUpTestingFolders() throws IOException {
for (final String testDir : new String[] { TEST_DIR, EXTRA_TEST_DIR }) {
final File file = new File(testDir);
FileUtils.deleteDirectory(file);
}
}
}