use of com.thoughtworks.go.plugin.api.request.GoPluginApiRequest in project gocd by gocd.
the class ArtifactExtensionTestBase method shouldSubmitPublishArtifactRequest.
@Test
public void shouldSubmitPublishArtifactRequest() {
final String responseBody = "{\n" + " \"metadata\": {\n" + " \"artifact-version\": \"10.12.0\"\n" + " }\n" + "}";
when(pluginManager.submitTo(eq(PLUGIN_ID), eq(ARTIFACT_EXTENSION), requestArgumentCaptor.capture())).thenReturn(DefaultGoPluginApiResponse.success(responseBody));
ArtifactPlan artifactPlan = new ArtifactPlan("{\"id\":\"installer\",\"storeId\":\"docker\"}");
ArtifactStore artifactStore = new ArtifactStore("docker", "cd.go.docker");
EnvironmentVariableContext env = new EnvironmentVariableContext("foo", "bar");
final PublishArtifactResponse response = artifactExtension.publishArtifact(PLUGIN_ID, artifactPlan, artifactStore, "/temp", env);
final GoPluginApiRequest request = requestArgumentCaptor.getValue();
assertThat(request.extension(), is(ARTIFACT_EXTENSION));
assertThat(request.requestName(), is(REQUEST_PUBLISH_ARTIFACT));
final String expectedJSON = "{" + " \"artifact_plan\": {" + " \"id\": \"installer\"," + " \"storeId\": \"docker\"" + " }," + " \"artifact_store\": {" + " \"configuration\": {}," + " \"id\": \"docker\"" + " }," + " \"environment_variables\": {" + " \"foo\": \"bar\"" + " }," + " \"agent_working_directory\": \"/temp\"" + "}";
assertThatJson(expectedJSON).isEqualTo(request.requestBody());
assertThat(response.getMetadata().size(), is(1));
assertThat(response.getMetadata(), hasEntry("artifact-version", "10.12.0"));
}
use of com.thoughtworks.go.plugin.api.request.GoPluginApiRequest in project gocd by gocd.
the class ArtifactExtensionTestBase method shouldGetFetchArtifactViewFromPlugin.
@Test
public void shouldGetFetchArtifactViewFromPlugin() {
when(pluginManager.submitTo(eq(PLUGIN_ID), eq(ARTIFACT_EXTENSION), requestArgumentCaptor.capture())).thenReturn(new DefaultGoPluginApiResponse(SUCCESS_RESPONSE_CODE, "{ \"template\": \"fetch-artifact-view\"}"));
String view = artifactExtension.getFetchArtifactView(PLUGIN_ID);
final GoPluginApiRequest request = requestArgumentCaptor.getValue();
assertThat(request.extension(), is(ARTIFACT_EXTENSION));
assertThat(request.requestName(), is(REQUEST_FETCH_ARTIFACT_VIEW));
assertNull(request.requestBody());
assertThat(view, is("fetch-artifact-view"));
}
use of com.thoughtworks.go.plugin.api.request.GoPluginApiRequest in project gocd by gocd.
the class ArtifactExtensionTestBase method shouldGetPluggableArtifactMetadataFromPlugin.
@Test
public void shouldGetPluggableArtifactMetadataFromPlugin() {
String responseBody = "[{\"key\":\"FILENAME\",\"metadata\":{\"required\":true,\"secure\":false}},{\"key\":\"VERSION\",\"metadata\":{\"required\":true,\"secure\":true}}]";
when(pluginManager.submitTo(eq(PLUGIN_ID), eq(ARTIFACT_EXTENSION), requestArgumentCaptor.capture())).thenReturn(DefaultGoPluginApiResponse.success(responseBody));
final List<PluginConfiguration> response = artifactExtension.getPublishArtifactMetadata(PLUGIN_ID);
final GoPluginApiRequest request = requestArgumentCaptor.getValue();
assertThat(request.extension(), is(ARTIFACT_EXTENSION));
assertThat(request.requestName(), is(REQUEST_PUBLISH_ARTIFACT_METADATA));
assertNull(request.requestBody());
assertThat(response.size(), is(2));
assertThat(response, containsInAnyOrder(new PluginConfiguration("FILENAME", new Metadata(true, false)), new PluginConfiguration("VERSION", new Metadata(true, true))));
}
use of com.thoughtworks.go.plugin.api.request.GoPluginApiRequest in project gocd by gocd.
the class ArtifactExtensionTestBase method shouldGetArtifactStoreViewFromPlugin.
@Test
public void shouldGetArtifactStoreViewFromPlugin() {
when(pluginManager.submitTo(eq(PLUGIN_ID), eq(ARTIFACT_EXTENSION), requestArgumentCaptor.capture())).thenReturn(new DefaultGoPluginApiResponse(SUCCESS_RESPONSE_CODE, "{ \"template\": \"artifact-store-view\"}"));
String view = artifactExtension.getArtifactStoreView(PLUGIN_ID);
final GoPluginApiRequest request = requestArgumentCaptor.getValue();
assertThat(request.extension(), is(ARTIFACT_EXTENSION));
assertThat(request.requestName(), is(REQUEST_STORE_CONFIG_VIEW));
assertNull(request.requestBody());
assertThat(view, is("artifact-store-view"));
}
use of com.thoughtworks.go.plugin.api.request.GoPluginApiRequest in project gocd by gocd.
the class JsonBasedTaskExecutorTest method shouldConstructExecutionRequestWithRequiredDetails.
@Test
public void shouldConstructExecutionRequestWithRequiredDetails() {
String workingDir = "working-dir";
com.thoughtworks.go.plugin.api.task.Console console = mock(com.thoughtworks.go.plugin.api.task.Console.class);
when(context.workingDir()).thenReturn(workingDir);
EnvironmentVariables environment = getEnvironmentVariables();
when(context.environment()).thenReturn(environment);
when(context.console()).thenReturn(console);
final GoPluginApiRequest[] executionRequest = new GoPluginApiRequest[1];
when(response.responseBody()).thenReturn("{\"success\":true,\"messages\":[\"message1\",\"message2\"]}");
doAnswer(new Answer() {
@Override
public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
GoPluginApiRequest request = (GoPluginApiRequest) invocationOnMock.getArguments()[2];
executionRequest[0] = request;
return response;
}
}).when(pluginManager).submitTo(eq(pluginId), eq(PLUGGABLE_TASK_EXTENSION), any(GoPluginApiRequest.class));
handler = new JsonBasedTaskExtensionHandler_V1();
handlerHashMap.put("1.0", handler);
new JsonBasedTaskExecutor(pluginId, pluginRequestHelper, handlerHashMap).execute(config(), context);
assertTrue(executionRequest.length == 1);
Map result = (Map) new GsonBuilder().create().fromJson(executionRequest[0].requestBody(), Object.class);
Map context = (Map) result.get("context");
assertThat(context.get("workingDirectory"), is(workingDir));
Map environmentVariables = (Map) context.get("environmentVariables");
assertThat(environmentVariables.size(), is(2));
assertThat(environmentVariables.get("ENV1").toString(), is("VAL1"));
assertThat(environmentVariables.get("ENV2").toString(), is("VAL2"));
assertThat(executionRequest[0].requestParameters().size(), is(0));
}
Aggregations