package com.urbanairship.api.staticlists;
import com.google.common.net.HttpHeaders;
import com.urbanairship.api.client.Request;
import com.urbanairship.api.client.ResponseParser;
import com.urbanairship.api.staticlists.model.StaticListListingResponse;
import com.urbanairship.api.staticlists.parse.StaticListsObjectMapper;
import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
import static org.junit.Assert.assertEquals;
public class StaticListListingRequestTest {
private final static ObjectMapper mapper = StaticListsObjectMapper.getInstance();
private final static String STATIC_LIST_LISTING_PATH = "/api/lists/";
StaticListListingRequest request;
@Before
public void setup() {
request = StaticListListingRequest.newRequest();
}
@Test
public void testContentType() throws Exception {
assertEquals(request.getContentType(), null);
}
@Test
public void testMethod() throws Exception {
assertEquals(request.getHttpMethod(), Request.HttpMethod.GET);
}
@Test
public void testBody() throws Exception {
assertEquals(request.getRequestBody(), null);
}
@Test
public void testHeaders() throws Exception {
Map<String, String> headers = new HashMap<String, String>();
headers.put(HttpHeaders.ACCEPT, Request.UA_VERSION_JSON);
assertEquals(request.getRequestHeaders(), headers);
}
@Test
public void testURI() throws Exception {
URI baseURI = URI.create("https://go.urbanairship.com");
URI expectedUri = URI.create("https://go.urbanairship.com" + STATIC_LIST_LISTING_PATH);
assertEquals(request.getUri(baseURI), expectedUri);
}
@Test
public void testParser() throws Exception {
ResponseParser responseParser = new ResponseParser<StaticListListingResponse>() {
@Override
public StaticListListingResponse parse(String response) throws IOException {
return mapper.readValue(response, StaticListListingResponse.class);
}
};
String responseString = "{" +
"\"ok\": true,\n" +
"\"lists\": [\n" +
"{\n" +
"\"name\": \"platinum_members\",\n" +
"\"description\": \"loyalty program platinum members\",\n" +
"\"extra\": {\"key\": \"value\"},\n" +
"\"created\": \"2013-08-08T20:41:06\",\n" +
"\"last_updated\": \"2014-05-01T18:00:27\",\n" +
"\"channel_count\": 3145,\n" +
"\"status\": \"ready\"\n" +
"},\n" +
"{\n" +
"\"name\": \"silver_members\",\n" +
"\"description\": \"loyalty program silver members\",\n" +
"\"extra\": {\"key2\": \"value2\"},\n" +
"\"created\": \"2013-08-08T20:41:06\",\n" +
"\"last_updated\": \"2014-05-01T18:00:27\",\n" +
"\"channel_count\": 19999,\n" +
"\"status\": \"ready\"\n" +
"},\n" +
"{\n" +
"\"name\": \"gold_members\",\n" +
"\"description\": \"loyalty program gold members\",\n" +
"\"extra\": {\"key3\": \"value3\"},\n" +
"\"created\": \"2013-08-08T20:45:06\",\n" +
"\"last_updated\": \"2015-05-01T18:00:27\",\n" +
"\"channel_count\": 2142,\n" +
"\"status\": \"processing\"\n" +
"}\n" +
"]\n" +
"}";
assertEquals(request.getResponseParser().parse(responseString), responseParser.parse(responseString));
}
}