/*************************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.helpers;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import com.thoughtworks.go.server.domain.LogFile;
import com.thoughtworks.go.util.FileUtil;
import com.thoughtworks.go.util.TestFileUtil;
import org.apache.commons.io.FileUtils;
public final class DataUtils {
public static final String TEST_DATA_DIR = "test/data/";
public static final String CONFIG_XML = "cruise-config.xml";
public static final String FAILING_LOG = "cruisecontrollog_internalerror.log";
public static final String FAILING_BUILD_XML = "log20051209122104.xml";
public static final String PASSING_BUILD_LBUILD_0_XML = "log20051209122103Lbuild.489.xml";
public static final String LOGFILE_OF_PROJECT2 = "log20060703155722.xml";
private DataUtils() {
}
public static File getConfigXmlAsFile() {
return getData(CONFIG_XML);
}
public static File getConfigXmlOfWebApp() {
return getFileOfWebApp(CONFIG_XML);
}
public static File getDashboardConfigXmlOfWebApp() throws Exception {
return getFileOfWebApp(CONFIG_XML);
}
private static File getFileOfWebApp(String file) {
File ccroot = new File(FileSystemUtils.getTestRootDir(), "tmpCCRoot");
File data = new File(ccroot, "data");
return new File(data, file);
}
public static void cloneCCHome() throws Exception {
File ccRoot = getConfigXmlAsFile().getParentFile();
File tmpCCRoot = FileSystemUtils.createDirectory("tmpCCRoot");
FileUtils.copyDirectoryToDirectory(ccRoot, tmpCCRoot);
}
public static File getLogRootOfWebapp() {
return getSubFolderOfWebApp("logs");
}
private static File getSubFolderOfWebApp(String subFolder) {
File ccroot = new File(FileSystemUtils.getTestRootDir(), "tmpCCRoot");
File data = new File(ccroot, "data");
return new File(data, subFolder);
}
public static LogFile getPassingBuildLbuildAsFile() throws Exception {
return getLogFile("logs/project1/" + PASSING_BUILD_LBUILD_0_XML);
}
public static LogFile getFailedBuildLbuildAsFile() throws Exception {
return getLogFile("logs/project1/" + FAILING_BUILD_XML);
}
public static File getPassingHtmlAsFile() {
return getLogFile("logs/project1/" + "passed-index.html").getFile();
}
public static File getFailedHtmlAsFile() {
return getLogFile("logs/project1/" + "failed-index.html").getFile();
}
public static LogFile getZippedBuildAsFile() throws Exception {
return getLogFile("logs/project1/log20061209122103Lbuild.489.xml.gz");
}
public static File getLogDirAsFile() {
return getData("logs");
}
public static File getProjectLogDirAsFile(String project) throws Exception {
return new File(getLogDirAsFile(), project);
}
public static File getProject2BuildAsFile() throws Exception {
return getLogFile("logs/project2/" + LOGFILE_OF_PROJECT2).getFile();
}
private static File getData(String filename) {
return new File(TEST_DATA_DIR + filename);
}
public static LogFile getLogFile(String filename) {
return new LogFile(new File(TEST_DATA_DIR + filename));
}
public static File createDefaultCCConfigFile() throws IOException {
File configurationFile = TestFileUtil.createTempFile("config.xml");
FileUtil.writeContentToFile("<cruisecontrol><project name=\"project1\"/></cruisecontrol>\n", configurationFile);
return configurationFile;
}
public static String readFileContent(File file) throws Exception {
BufferedReader reader = null;
StringBuffer sb = new StringBuffer();
try {
reader = new BufferedReader(new FileReader(file));
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
} finally {
if (reader != null) {
reader.close();
}
}
return sb.toString();
}
public static File getDashboardConfig() throws Exception {
return getData(CONFIG_XML);
}
}