/*************************GO-LICENSE-START*********************************
* Copyright 2014 ThoughtWorks, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License 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.
*************************GO-LICENSE-END***********************************/
package com.thoughtworks.go.util;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
import org.apache.commons.io.FileUtils;
public class TestFileUtil {
private static TempFiles tempFiles = new TempFiles();
public static File createUniqueTempFolder(String prefix) {
return tempFiles.createUniqueFolder(prefix);
}
public static File createTempFolder(String folderName) {
return tempFiles.mkdir(folderName);
}
public static File createUniqueTempFile(String prefix) {
return tempFiles.createUniqueFile(prefix);
}
public static File createTempFile(String fileName) throws IOException {
return tempFiles.createFile(fileName);
}
public static File createTempFileInSubfolder(String fileName) {
File subfolder = createTempFolder(UUID.randomUUID().toString());
return new File(subfolder, fileName);
}
public static File createTestFile(File testFolder, String path) throws Exception {
File subfile = new File(testFolder, path);
subfile.createNewFile();
subfile.deleteOnExit();
return subfile;
}
public static File createTestFolder(File parent, String folderName) {
File subDir = new File(parent, folderName);
subDir.mkdirs();
subDir.deleteOnExit();
return subDir;
}
public static File writeStringToTempFileInFolder(String directoryName, String fileName, String contents)
throws Exception {
File folderToCreate = tempFiles.createUniqueFolder(directoryName);
File fileToCreate = new File(folderToCreate, fileName);
folderToCreate.mkdirs();
FileUtils.writeStringToFile(fileToCreate, contents);
fileToCreate.deleteOnExit();
folderToCreate.deleteOnExit();
return fileToCreate;
}
public static File prepareFolderInsideTempFolder(String prefix) {
File folder = createUniqueTempFolder(prefix);
return new File(folder, "new-folder");
}
public static void cleanTempFiles(){
tempFiles.cleanUp();
}
}