package org.atomhopper.adapter;
import org.apache.abdera.model.Entry;
import org.apache.abdera.model.Feed;
import org.atomhopper.response.AdapterResponse;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
import org.springframework.http.HttpStatus;
import static junit.framework.Assert.assertEquals;
import static org.mockito.Mockito.mock;
@RunWith(Enclosed.class)
public class ResponseBuilderTest {
public static class WhenAccessingResponseBuilder {
private static final String MESSAGE = "message";
private Feed mockFeed;
private Entry mockEntry;
@Before
public void setUp() throws Exception {
mockFeed = mock(Feed.class);
mockEntry = mock(Entry.class);
}
@Test
public void shouldReturnNotImplementedResponse() throws Exception {
AdapterResponse<Entry> response = ResponseBuilder.notImplemented(MESSAGE);
assertEquals("Should return correct message", MESSAGE, response.getMessage());
assertEquals("Should return correct HttpStatus METHOD_NOT_ALLOWED", HttpStatus.METHOD_NOT_ALLOWED, response.getResponseStatus());
}
@Test
public void shouldReturnBadRequestResponse() throws Exception {
AdapterResponse<Entry> response = ResponseBuilder.badRequest(MESSAGE);
assertEquals("Should return correct message", MESSAGE, response.getMessage());
assertEquals("Should return HttpStatus BAD_REQUEST", HttpStatus.BAD_REQUEST, response.getResponseStatus());
}
@Test
public void shouldReturnNotFoundResponse() throws Exception {
AdapterResponse<Feed> response = ResponseBuilder.notFound(MESSAGE);
assertEquals("Should return HttpStatus NOT_FOUND", HttpStatus.NOT_FOUND, response.getResponseStatus());
}
@Test
public void shouldReturnFeedFoundResponse() throws Exception {
AdapterResponse<Feed> response = ResponseBuilder.found(mockFeed);
assertEquals("Should return HttpStatus OK", HttpStatus.OK, response.getResponseStatus());
}
@Test
public void shouldReturnEntryFoundResponse() throws Exception {
AdapterResponse<Entry> response = ResponseBuilder.found(mockEntry);
assertEquals("Should return HttpStatus OK", HttpStatus.OK, response.getResponseStatus());
}
@Test
public void shouldReturnReplyResponse() throws Exception {
AdapterResponse<Entry> response = ResponseBuilder.reply(HttpStatus.FORBIDDEN, MESSAGE);
assertEquals("Should return correct message", MESSAGE, response.getMessage());
assertEquals("Should return HttpStatus FORBIDDEN", HttpStatus.FORBIDDEN, response.getResponseStatus());
}
@Test
public void shouldReturnErrorResponse() throws Exception {
AdapterResponse<Entry> response = ResponseBuilder.error(MESSAGE);
assertEquals("Should return correct message", MESSAGE, response.getMessage());
assertEquals("Should return HttpStatus INTERNAL_SERVER_ERROR", HttpStatus.INTERNAL_SERVER_ERROR, response.getResponseStatus());
}
@Test
public void shouldReturnEntryUpdatedResponse() throws Exception {
AdapterResponse<Entry> response = ResponseBuilder.updated(mockEntry, MESSAGE);
assertEquals("Should return correct message", MESSAGE, response.getMessage());
assertEquals("Should return HttpStatus ACCEPTED", HttpStatus.ACCEPTED, response.getResponseStatus());
}
@Test
public void shouldReturnEntryCreatedResponse() throws Exception {
AdapterResponse<Entry> response = ResponseBuilder.created(mockEntry);
assertEquals("Should return HttpStatus CREATED", HttpStatus.CREATED, response.getResponseStatus());
}
@Test
public void shouldReturnEntryCreatedWithMessageResponse() throws Exception {
AdapterResponse<Entry> response = ResponseBuilder.created(mockEntry, MESSAGE);
assertEquals("Should return correct message", MESSAGE, response.getMessage());
assertEquals("Should return HttpStatus CREATED", HttpStatus.CREATED, response.getResponseStatus());
}
}
}