/*
* Copyright 2016 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.
*/
package com.thoughtworks.go.helper;
import com.thoughtworks.go.config.*;
import com.thoughtworks.go.config.materials.dependency.DependencyMaterialConfig;
import com.thoughtworks.go.config.materials.git.GitMaterialConfig;
import com.thoughtworks.go.config.remote.ConfigRepoConfig;
import com.thoughtworks.go.config.remote.PartialConfig;
import com.thoughtworks.go.config.remote.RepoConfigOrigin;
import com.thoughtworks.go.domain.PipelineGroups;
public class PartialConfigMother {
public static PartialConfig empty() {
return new PartialConfig();
}
public static PartialConfig withPipeline(String name) {
return withPipeline(name, createRepoOrigin());
}
public static PartialConfig pipelineWithDependencyMaterial(String name, PipelineConfig upstream, RepoConfigOrigin repoConfig) {
PartialConfig partialConfig = withPipeline(name, repoConfig);
PipelineConfig pipeline = partialConfig.getGroups().first().get(0);
pipeline.materialConfigs().add(new DependencyMaterialConfig(upstream.name(), upstream.first().name()));
return partialConfig;
}
public static PartialConfig withPipeline(String name, RepoConfigOrigin repoOrigin) {
PipelineConfig pipe = PipelineConfigMother.pipelineConfig(name);
BasicPipelineConfigs pipes = new BasicPipelineConfigs(pipe);
pipes.setGroup("group");
PartialConfig partialConfig = new PartialConfig(new PipelineGroups(pipes));
partialConfig.setOrigins(repoOrigin);
return partialConfig;
}
public static PartialConfig invalidPartial(String name) {
return invalidPartial(name, createRepoOrigin());
}
public static PartialConfig invalidPartial(String name, RepoConfigOrigin repoOrigin) {
PipelineConfig pipe = PipelineConfigMother.pipelineConfig(name);
pipe.getFirstStageConfig().setName(new CaseInsensitiveString(""));
BasicPipelineConfigs pipes = new BasicPipelineConfigs("grp", new Authorization(), pipe);
PartialConfig partialConfig = new PartialConfig(new PipelineGroups(pipes));
partialConfig.setOrigins(repoOrigin);
return partialConfig;
}
public static PartialConfig withPipelineInGroup(String pipelineName, String groupName) {
PipelineConfig pipe = PipelineConfigMother.pipelineConfig(pipelineName);
BasicPipelineConfigs pipes = new BasicPipelineConfigs(groupName, new Authorization(), pipe);
PartialConfig partialConfig = new PartialConfig(new PipelineGroups(pipes));
partialConfig.setOrigins(createRepoOrigin());
return partialConfig;
}
public static RepoConfigOrigin createRepoOrigin() {
return new RepoConfigOrigin(new ConfigRepoConfig(new GitMaterialConfig("http://some.git"), "myplugin"), "1234fed");
}
public static PartialConfig withEnvironment(String name, RepoConfigOrigin repoConfigOrigin) {
BasicEnvironmentConfig env = EnvironmentConfigMother.environment(name);
PartialConfig partialConfig = new PartialConfig();
partialConfig.getEnvironments().add(env);
partialConfig.setOrigins(repoConfigOrigin);
return partialConfig;
}
public static PartialConfig withEnvironment(String name) {
return withEnvironment(name, createRepoOrigin());
}
}