use of com.thoughtworks.go.plugin.api.request.GoPluginApiRequest in project gocd by gocd.
the class JsonBasedPluggableTaskTest method shouldGetTheTaskConfig.
@Test
public void shouldGetTheTaskConfig() {
String jsonResponse = "{" + "\"URL\":{\"default-value\":\"\",\"secure\":false,\"required\":true}," + "\"USER\":{\"default-value\":\"foo\",\"secure\":true,\"required\":true}," + "\"PASSWORD\":{}" + "}";
when(goPluginApiResponse.responseBody()).thenReturn(jsonResponse);
TaskConfig config = task.config();
Property url = config.get("URL");
assertThat(url.getOption(Property.REQUIRED), is(true));
assertThat(url.getOption(Property.SECURE), is(false));
Property user = config.get("USER");
assertThat(user.getOption(Property.REQUIRED), is(true));
assertThat(user.getOption(Property.SECURE), is(true));
Property password = config.get("PASSWORD");
assertThat(password.getOption(Property.REQUIRED), is(true));
assertThat(password.getOption(Property.SECURE), is(false));
ArgumentCaptor<GoPluginApiRequest> argument = ArgumentCaptor.forClass(GoPluginApiRequest.class);
verify(pluginManager).submitTo(eq(pluginId), eq(PLUGGABLE_TASK_EXTENSION), argument.capture());
MatcherAssert.assertThat(argument.getValue().extension(), Matchers.is(PLUGGABLE_TASK_EXTENSION));
MatcherAssert.assertThat(argument.getValue().extensionVersion(), Matchers.is(JsonBasedTaskExtensionHandler_V1.VERSION));
MatcherAssert.assertThat(argument.getValue().requestName(), Matchers.is(TaskExtension.CONFIGURATION_REQUEST));
}
use of com.thoughtworks.go.plugin.api.request.GoPluginApiRequest in project gocd by gocd.
the class JsonBasedPluggableTaskTest method shouldValidateTaskConfig.
@Test
public void shouldValidateTaskConfig() {
String jsonResponse = "{\"errors\":{\"key1\":\"err1\",\"key2\":\"err3\"}}";
String config = "{\"URL\":{\"secure\":false,\"value\":\"http://foo\",\"required\":true}}";
when(goPluginApiResponse.responseBody()).thenReturn(jsonResponse);
TaskConfig configuration = new TaskConfig();
final TaskConfigProperty property = new TaskConfigProperty("URL", "http://foo");
property.with(Property.SECURE, false);
property.with(Property.REQUIRED, true);
configuration.add(property);
ValidationResult result = task.validate(configuration);
assertThat(result.isSuccessful(), is(false));
assertThat(result.getErrors().get(0).getKey(), is("key1"));
assertThat(result.getErrors().get(0).getMessage(), is("err1"));
assertThat(result.getErrors().get(1).getKey(), is("key2"));
assertThat(result.getErrors().get(1).getMessage(), is("err3"));
ArgumentCaptor<GoPluginApiRequest> argument = ArgumentCaptor.forClass(GoPluginApiRequest.class);
verify(pluginManager).submitTo(eq(pluginId), eq(PLUGGABLE_TASK_EXTENSION), argument.capture());
assertThat(argument.getValue().requestBody(), is(config));
MatcherAssert.assertThat(argument.getValue().extension(), Matchers.is(PLUGGABLE_TASK_EXTENSION));
MatcherAssert.assertThat(argument.getValue().extensionVersion(), Matchers.is(JsonBasedTaskExtensionHandler_V1.VERSION));
MatcherAssert.assertThat(argument.getValue().requestName(), Matchers.is(TaskExtension.VALIDATION_REQUEST));
}
Aggregations