package com.urbanairship.api.staticlists.parse;
import com.google.common.base.Optional;
import com.urbanairship.api.common.parse.DateFormats;
import com.urbanairship.api.staticlists.model.StaticListListingResponse;
import com.urbanairship.api.staticlists.model.StaticListView;
import org.codehaus.jackson.map.ObjectMapper;
import org.joda.time.DateTime;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
public class StaticListListingResponseDeserializerTest {
private static final ObjectMapper mapper = StaticListsObjectMapper.getInstance();
@Test
public void testStaticListListingResponse() throws Exception {
DateTime created = DateFormats.DATE_PARSER.parseDateTime("2013-08-08T20:41:06");
DateTime updated = DateFormats.DATE_PARSER.parseDateTime("2014-05-01T18:00:27");
String json = "{" +
"\"ok\" : true," +
"\"lists\" : [" +
"{" +
"\"name\" : \"platinum_members\"," +
"\"description\" : \"loyalty program platinum members\"," +
"\"extra\" : { \"key\" : \"value\" }," +
"\"created\" : \"2013-08-08T20:41:06\"," +
"\"last_updated\" : \"2014-05-01T18:00:27\"," +
"\"channel_count\": 3145," +
"\"status\": \"ready\"" +
"}," +
"{" +
"\"name\": \"gold_members\"," +
"\"extra\": { \"key\": \"value\" }," +
"\"created\": \"2013-08-08T20:41:06\"," +
"\"last_updated\": \"2014-05-01T18:00:27\"," +
"\"channel_count\": 678," +
"\"status\": \"ready\"" +
"}" +
"]" +
"}";
StaticListListingResponse lists = mapper.readValue(json, StaticListListingResponse.class);
assertNotNull(lists);
assertEquals(true, lists.getOk());
StaticListView list1 = lists.getStaticListViews().get(0);
assertNotNull(list1);
assertEquals("platinum_members", list1.getName());
assertEquals(Optional.of("loyalty program platinum members"), list1.getDescription());
assertEquals(created, list1.getCreated());
assertEquals(updated, list1.getLastUpdated());
assertEquals(Integer.valueOf(3145), list1.getChannelCount());
assertEquals("ready", list1.getStatus());
StaticListView list2 = lists.getStaticListViews().get(1);
assertNotNull(list2);
assertEquals("gold_members", list2.getName());
assertEquals(Optional.absent(), list2.getDescription());
assertEquals(created, list2.getCreated());
assertEquals(updated, list2.getLastUpdated());
assertEquals(Integer.valueOf(678), list2.getChannelCount());
assertEquals("ready", list2.getStatus());
}
}