/*
* Copyright 2017 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.plugin.api.task;
import java.util.List;
import com.thoughtworks.go.plugin.api.config.Property;
import org.junit.Before;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class TaskConfigTest {
private TaskConfig taskConfig;
@Before
public void setUp() throws Exception {
taskConfig = new TaskConfig();
}
@Test
public void shouldAddPropertyWithGiveName() throws Exception {
String abcd = "Abcd";
String abcdDefault = "first of alphabets";
String wxyz = "wxyz";
String wxyzDefault = "last of alphabets";
taskConfig.addProperty(wxyz).withDefault(wxyzDefault);
taskConfig.addProperty(abcd).withDefault(abcdDefault);
List<? extends Property> properties = taskConfig.list();
assertThat(properties.size(), is(2));
for (Property property : properties) {
assertThat(property != null, is(true));
assertThat(property instanceof TaskConfigProperty, is(true));
}
assertThat(taskConfig.get(abcd) != null, is(true));
assertThat(taskConfig.get(abcd).getValue(), is(abcdDefault));
assertThat(taskConfig.get(wxyz) != null, is(true));
assertThat(taskConfig.get(wxyz).getValue(), is(wxyzDefault));
}
@Test
public void shouldSortTheProperties(){
TaskConfigProperty k1 = getTaskConfigProperty(3);
TaskConfigProperty k2 = getTaskConfigProperty(0);
TaskConfigProperty k3 = getTaskConfigProperty(2);
TaskConfigProperty k4 = getTaskConfigProperty(1);
taskConfig.add(k1);
taskConfig.add(k2);
taskConfig.add(k3);
taskConfig.add(k4);
assertThat(taskConfig.list().get(0), is(k2));
assertThat(taskConfig.list().get(1), is(k4));
assertThat(taskConfig.list().get(2), is(k3));
assertThat(taskConfig.list().get(3), is(k1));
}
private TaskConfigProperty getTaskConfigProperty(int order) {
TaskConfigProperty property = new TaskConfigProperty("Key"+order);
property.with(Property.DISPLAY_ORDER, order);
return property;
}
}