/*************************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.domain;
import com.thoughtworks.go.util.command.EnvironmentVariableContext;
import org.junit.Test;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
public class JobIdentifierTest {
@Test
public void shouldReturnBuildLocator() throws Exception {
JobIdentifier id = new JobIdentifier("cruise", 1, "label-", "dev", "1", "linux-firefox-1", 100L);
assertThat(id.buildLocator(), is("cruise/1/dev/1/linux-firefox-1"));
}
@Test
public void shouldReturnPropertyLocatorUsingLabel() throws Exception {
JobIdentifier id = new JobIdentifier("cruise", -1, "1.0.1234", "dev", "1", "linux-firefox-1", 100L);
assertThat(id.propertyLocator("test-duration"), is("cruise/1.0.1234/dev/1/linux-firefox-1/test-duration"));
}
@Test
public void shouldReturnPropertyLocatorUsingPipelineCounter() throws Exception {
JobIdentifier id = new JobIdentifier("cruise", 1234, "1.0.1234", "dev", "1", "linux-firefox-1", 100L);
assertThat(id.propertyLocator("test-duration"), is("cruise/1234/dev/1/linux-firefox-1/test-duration"));
}
@Test
public void shouldReturnArtifactLocatorUsingLabel() throws Exception {
JobIdentifier id = new JobIdentifier("cruise", -2, "1.0.1234", "dev", "1", "linux-firefox-1", 100L);
assertThat(id.artifactLocator("consoleoutput/log.xml"), is("cruise/1.0.1234/dev/1/linux-firefox-1/consoleoutput/log.xml"));
}
@Test
public void shouldReturnArtifactLocatorUsingPipelineCounter() throws Exception {
JobIdentifier id = new JobIdentifier("cruise", 1234, "1.0.1234", "dev", "1", "linux-firefox-1", 100L);
assertThat(id.artifactLocator("consoleoutput/log.xml"),
is("cruise/1234/dev/1/linux-firefox-1/consoleoutput/log.xml"));
}
@Test
public void shouldFixFilePathWithPrecedingSlash() {
JobIdentifier id = new JobIdentifier("cruise", 1234, "1.0.1234", "dev", "1", "linux-firefox-1", 100L);
assertThat(id.artifactLocator("/consoleoutput/log.xml"),
is("cruise/1234/dev/1/linux-firefox-1/consoleoutput/log.xml"));
}
@Test
public void shouldReturnURN() throws Exception {
JobIdentifier id = new JobIdentifier("cruise", 1, "label-", "dev", "1", "linux-firefox-1", 100L);
assertThat(id.asURN(), is("urn:x-go.studios.thoughtworks.com:job-id:cruise:1:dev:1:linux-firefox-1"));
}
@Test
public void shouldPopulateGoJobInstanceRelatedEnvironmentVariables() {
JobIdentifier id = new JobIdentifier("pipeline-name", 10, "label-10", "stage-name", "2", "build-name");
id.setRerunOfCounter(1);
EnvironmentVariableContext context = new EnvironmentVariableContext();
id.populateEnvironmentVariables(context);
EnvironmentVariableContext expected = new EnvironmentVariableContext();
expected.setProperty("GO_PIPELINE_NAME", "pipeline-name", false);
expected.setProperty("GO_PIPELINE_COUNTER", "10", false);
expected.setProperty("GO_PIPELINE_LABEL", "label-10", false);
expected.setProperty("GO_STAGE_NAME", "stage-name", false);
expected.setProperty("GO_STAGE_COUNTER", "2", false);
expected.setProperty("GO_RERUN_OF_STAGE_COUNTER", "1", false);
expected.setProperty("GO_JOB_NAME", "build-name", false);
assertThat(context, is(expected));
}
@Test
public void shouldNotPopulate_RerunOfStage_whenNotAvailable() {
JobIdentifier id = new JobIdentifier("pipeline-name", 10, "label-10", "stage-name", "2", "build-name");
EnvironmentVariableContext context = new EnvironmentVariableContext();
id.populateEnvironmentVariables(context);
assertThat(context.hasProperty("GO_RERUN_OF_STAGE_COUNTER"), is(false));
id.setRerunOfCounter(1);
context = new EnvironmentVariableContext();
id.populateEnvironmentVariables(context);
assertThat(context.hasProperty("GO_RERUN_OF_STAGE_COUNTER"), is(true));
}
}