package com.thoughtworks.go.plugin.api.response; import org.junit.Test; import java.util.Map; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; public class DefaultGoApiResponseTest { @Test public void shouldBeInstanceOfGoApiResponse() throws Exception { DefaultGoApiResponse response = new DefaultGoApiResponse(0); assertThat(response, instanceOf(GoApiResponse.class)); } @Test public void shouldReturnUnmodifiableResponseHeaders() throws Exception { DefaultGoApiResponse response = new DefaultGoApiResponse(0); Map<String, String> headers = response.responseHeaders(); try { headers.put("new-key", "new-value"); fail("Should not allow modification of response headers"); } catch (UnsupportedOperationException e) { } try { headers.remove("key"); fail("Should not allow modification of response headers"); } catch (UnsupportedOperationException e) { } } @Test public void shouldBeAbleToSetAndGetResponseBody() throws Exception { DefaultGoApiResponse response = new DefaultGoApiResponse(0); String responseBody = "response-body"; response.setResponseBody(responseBody); assertThat(response.responseBody(), is(responseBody)); } @Test public void shouldBeAbleToInitializeResponse() throws Exception { int responseCode = 0; GoApiResponse response = new DefaultGoApiResponse(responseCode); assertThat(response.responseCode(), is(responseCode)); } @Test public void shouldReturnResponseForBadRequest() throws Exception { DefaultGoApiResponse response = DefaultGoApiResponse.badRequest("responseBody"); assertThat(response.responseCode(), is(400)); assertThat(response.responseBody(), is("responseBody")); } @Test public void shouldReturnResponseForIncompleteRequest() throws Exception { DefaultGoApiResponse response = DefaultGoApiResponse.incompleteRequest("responseBody"); assertThat(response.responseCode(), is(412)); assertThat(response.responseBody(), is("responseBody")); } @Test public void shouldReturnResponseForErrorRequest() throws Exception { DefaultGoApiResponse response = DefaultGoApiResponse.error("responseBody"); assertThat(response.responseCode(), is(500)); assertThat(response.responseBody(), is("responseBody")); } @Test public void shouldReturnResponseForSuccessRequest() throws Exception { DefaultGoApiResponse response = DefaultGoApiResponse.success("responseBody"); assertThat(response.responseCode(), is(200)); assertThat(response.responseBody(), is("responseBody")); } }