/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.jenkins.results.parser;
import java.io.File;
import java.io.FileOutputStream;
import java.io.StringReader;
import java.net.URL;
import java.util.Hashtable;
import java.util.Properties;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* @author Peter Yoo
*/
public class BuildTest extends BaseJenkinsResultsParserTestCase {
@Before
public void setUp() throws Exception {
JenkinsResultsParserUtil.setBuildProperties(
JenkinsResultsParserUtil.getBuildProperties());
downloadSample(
"test-jenkins-acceptance-pullrequest_passed", "34",
"test-jenkins-acceptance-pullrequest", "test-5-1");
downloadSample(
"test-plugins-acceptance-pullrequest(ee-6.2.x)_passed", "66",
"test-plugins-acceptance-pullrequest(ee-6.2.x)", "test-1-8");
downloadSample(
"test-portal-acceptance-pullrequest(ee-6.2.x)_passed", "337",
"test-portal-acceptance-pullrequest(ee-6.2.x)", "test-1-17");
downloadSample(
"test-portal-acceptance-pullrequest(ee-7.0.x)_sf-failure", "262",
"test-portal-acceptance-pullrequest(ee-7.0.x)", "test-1-11");
downloadSample(
"test-portal-acceptance-pullrequest(master)_generic-failure",
"1375", "test-portal-acceptance-pullrequest(master)", "test-1-1");
downloadSample(
"test-portal-acceptance-pullrequest(master)_passed", "446",
"test-portal-acceptance-pullrequest(master)", "test-1-8");
}
@After
public void tearDown() throws Exception {
JenkinsResultsParserUtil.setBuildProperties((Hashtable<?, ?>)null);
}
@Test
public void testGetGitHubMessage() throws Exception {
assertSamples();
}
@Override
protected void downloadSample(File sampleDir, URL url) throws Exception {
Build build = BuildFactory.newBuild(
JenkinsResultsParserUtil.getLocalURL(url.toExternalForm()), null);
build.archive(getSimpleClassName() + "/" + sampleDir.getName());
}
protected void downloadSample(
String sampleKey, String buildNumber, String jobName,
String hostName)
throws Exception {
String urlString =
"https://${hostName}.liferay.com/job/${jobName}/${buildNumber}/";
urlString = replaceToken(urlString, "buildNumber", buildNumber);
urlString = replaceToken(urlString, "hostName", hostName);
urlString = replaceToken(urlString, "jobName", jobName);
URL url = JenkinsResultsParserUtil.createURL(urlString);
downloadSample(sampleKey, url);
}
@Override
protected String getMessage(File sampleDir) throws Exception {
Build build = BuildFactory.newBuildFromArchive(
"BuildTest/" + sampleDir.getName());
return Dom4JUtil.format(build.getGitHubMessageElement(), true);
}
protected Properties loadProperties(String sampleName) throws Exception {
Class<?> clazz = getClass();
Properties properties = new Properties();
String content = JenkinsResultsParserUtil.toString(
JenkinsResultsParserUtil.getLocalURL(
JenkinsResultsParserUtil.combine(
"${dependencies.url}", clazz.getSimpleName(), "/",
sampleName, "/sample.properties")));
properties.load(new StringReader(content));
return properties;
}
protected void saveProperties(File file, Properties properties)
throws Exception {
try (FileOutputStream fileOutputStream = new FileOutputStream(file)) {
properties.store(fileOutputStream, null);
}
}
@Override
protected void writeExpectedMessage(File sampleDir) throws Exception {
File expectedMessageFile = new File(sampleDir, "expected_message.html");
Build build = BuildFactory.newBuildFromArchive(
"BuildTest/" + sampleDir.getName());
String expectedMessage = fixMessage(
Dom4JUtil.format(build.getGitHubMessageElement()));
JenkinsResultsParserUtil.write(expectedMessageFile, expectedMessage);
}
}