/*
* Copyright (c) 2013 David Boissier
*
* 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.
*/
package org.codinjutsu.tools.jenkins.util;
import org.codinjutsu.tools.jenkins.model.BuildStatusEnum;
import org.hamcrest.core.IsEqual;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.util.Arrays;
import java.util.Collection;
@RunWith(Parameterized.class)
public class RssUtilTest {
private String inputRssTitle;
private BuildStatusEnum expectedStatus;
private String expectedBuildNumber;
private String expectedJobName;
@Parameterized.Parameters
public static Collection testData() {
return Arrays.asList(new Object[][]{
{"gerrit_master #170 (broken since build #165)", BuildStatusEnum.FAILURE, "170", "gerrit_master"},
{"hudson_metrics_wip #6 (aborted)", BuildStatusEnum.ABORTED, "6", "hudson_metrics_wip"},
{"infa_release.rss #139 (stable)", BuildStatusEnum.SUCCESS, "139", "infa_release.rss"},
{"infra_jenkins-ci.org_webcontents #2 (back to normal)", BuildStatusEnum.SUCCESS, "2", "infra_jenkins-ci.org_webcontents"},
{"jenkins_main_trunk #600 (?)", BuildStatusEnum.NULL, "600", "jenkins_main_trunk"},
{"plugins_subversion #58 (2 tests are still failing)", BuildStatusEnum.FAILURE, "58", "plugins_subversion"},
{"TESTING-HUDSON-7434 #2 (broken for a long time)", BuildStatusEnum.FAILURE, "2", "TESTING-HUDSON-7434"},
});
}
public RssUtilTest(String inputRssTitle, BuildStatusEnum expectedStatus, String expectedBuildNumber, String expectedJobName) {
this.inputRssTitle = inputRssTitle;
this.expectedStatus = expectedStatus;
this.expectedBuildNumber = expectedBuildNumber;
this.expectedJobName = expectedJobName;
}
@Test
public void shouldExtractData() throws Exception {
Assert.assertThat(RssUtil.extractStatus(inputRssTitle), IsEqual.equalTo(expectedStatus));
Assert.assertThat(RssUtil.extractBuildNumber(inputRssTitle), IsEqual.equalTo(expectedBuildNumber));
Assert.assertThat(RssUtil.extractBuildJob(inputRssTitle), IsEqual.equalTo(expectedJobName));
}
}