Search in sources :

Example 11 with GoPluginApiRequest

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"));
}
Also used : GoPluginApiRequest(com.thoughtworks.go.plugin.api.request.GoPluginApiRequest) ArtifactPlan(com.thoughtworks.go.domain.ArtifactPlan) ArtifactStore(com.thoughtworks.go.config.ArtifactStore) PublishArtifactResponse(com.thoughtworks.go.plugin.access.artifact.model.PublishArtifactResponse) EnvironmentVariableContext(com.thoughtworks.go.util.command.EnvironmentVariableContext) Test(org.junit.jupiter.api.Test)

Example 12 with GoPluginApiRequest

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"));
}
Also used : GoPluginApiRequest(com.thoughtworks.go.plugin.api.request.GoPluginApiRequest) DefaultGoPluginApiResponse(com.thoughtworks.go.plugin.api.response.DefaultGoPluginApiResponse) Test(org.junit.jupiter.api.Test)

Example 13 with GoPluginApiRequest

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))));
}
Also used : GoPluginApiRequest(com.thoughtworks.go.plugin.api.request.GoPluginApiRequest) Metadata(com.thoughtworks.go.plugin.domain.common.Metadata) PluginConfiguration(com.thoughtworks.go.plugin.domain.common.PluginConfiguration) Test(org.junit.jupiter.api.Test)

Example 14 with GoPluginApiRequest

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"));
}
Also used : GoPluginApiRequest(com.thoughtworks.go.plugin.api.request.GoPluginApiRequest) DefaultGoPluginApiResponse(com.thoughtworks.go.plugin.api.response.DefaultGoPluginApiResponse) Test(org.junit.jupiter.api.Test)

Example 15 with GoPluginApiRequest

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));
}
Also used : GoPluginApiRequest(com.thoughtworks.go.plugin.api.request.GoPluginApiRequest) GsonBuilder(com.google.gson.GsonBuilder) Answer(org.mockito.stubbing.Answer) com.thoughtworks.go.plugin.api.task(com.thoughtworks.go.plugin.api.task) InvocationOnMock(org.mockito.invocation.InvocationOnMock) HashMap(java.util.HashMap) Map(java.util.Map) Test(org.junit.jupiter.api.Test)

Aggregations

GoPluginApiRequest (com.thoughtworks.go.plugin.api.request.GoPluginApiRequest)42 Test (org.junit.jupiter.api.Test)23 DefaultGoPluginApiResponse (com.thoughtworks.go.plugin.api.response.DefaultGoPluginApiResponse)15 Test (org.junit.Test)12 ValidationResult (com.thoughtworks.go.plugin.api.response.validation.ValidationResult)7 ValidationError (com.thoughtworks.go.plugin.api.response.validation.ValidationError)6 Metadata (com.thoughtworks.go.plugin.domain.common.Metadata)6 PluginConfiguration (com.thoughtworks.go.plugin.domain.common.PluginConfiguration)6 InvocationOnMock (org.mockito.invocation.InvocationOnMock)4 Answer (org.mockito.stubbing.Answer)4 ArtifactStore (com.thoughtworks.go.config.ArtifactStore)3 HashMap (java.util.HashMap)3 Map (java.util.Map)3 ArtifactPlan (com.thoughtworks.go.domain.ArtifactPlan)2 PublishArtifactResponse (com.thoughtworks.go.plugin.access.artifact.model.PublishArtifactResponse)2 TaskConfig (com.thoughtworks.go.plugin.api.task.TaskConfig)2 TaskConfigProperty (com.thoughtworks.go.plugin.api.task.TaskConfigProperty)2 GsonBuilder (com.google.gson.GsonBuilder)1 FetchPluggableArtifactTask (com.thoughtworks.go.config.FetchPluggableArtifactTask)1 PluginSettingsJsonMessageHandler2_0 (com.thoughtworks.go.plugin.access.common.settings.PluginSettingsJsonMessageHandler2_0)1