package com.urbanairship.api.reports.parse;
import com.urbanairship.api.common.parse.DateFormats;
import com.urbanairship.api.reports.model.PlatformStats;
import com.urbanairship.api.reports.model.PlatformStatsResponse;
import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Test;
import java.io.IOException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
public class PlatformStatsResponseDeserializerTest {
private static final ObjectMapper mapper = ReportsObjectMapper.getInstance();
@Test
public void testTimeInAppResponseDeserializer() throws IOException {
String tiaJson = "{\n" +
" \"next_page\": \"Hey Next Page\",\n" +
" \"timeinapp\":[ \n" +
" { \n" +
" \"date\":\"2013-07-01 00:00:00\",\n" +
" \"ios\":145436,\n" +
" \"android\":193246\n" +
" },\n" +
" { \n" +
" \"date\":\"2013-08-01 00:00:00\",\n" +
" \"ios\":45608,\n" +
" \"android\":100203\n" +
" }\n" +
" ]\n" +
"}";
PlatformStatsResponse timeInAppObj = mapper.readValue(tiaJson, PlatformStatsResponse.class);
assertNotNull(timeInAppObj);
System.out.println(timeInAppObj);
PlatformStats platformStats1 = timeInAppObj.getPlatformStatsObjects().get().get(0);
assertEquals(193246, platformStats1.getAndroid());
assertEquals(145436, platformStats1.getIos());
assertEquals(DateFormats.DATE_PARSER.parseDateTime("2013-07-01 00:00:00"), platformStats1.getDate());
PlatformStats platformStats2 = timeInAppObj.getPlatformStatsObjects().get().get(1);
assertEquals(100203, platformStats2.getAndroid());
assertEquals(45608, platformStats2.getIos());
assertEquals(DateFormats.DATE_PARSER.parseDateTime("2013-08-01 00:00:00"), platformStats2.getDate());
}
@Test
public void testAppOpensDeserializer() throws IOException {
String appOpensJson = "{\n" +
" \"next_page\": \"Hey Next Page\",\n" +
" \"opens\":[ \n" +
" { \n" +
" \"date\":\"2013-07-01 00:00:00\",\n" +
" \"ios\":145436,\n" +
" \"android\":193246\n" +
" },\n" +
" { \n" +
" \"date\":\"2013-08-01 00:00:00\",\n" +
" \"ios\":45608,\n" +
" \"android\":100203\n" +
" }\n" +
" ]\n" +
"}";
PlatformStatsResponse appOpensObj = mapper.readValue(appOpensJson, PlatformStatsResponse.class);
assertNotNull(appOpensObj);
System.out.println(appOpensObj);
PlatformStats platformStats1 = appOpensObj.getPlatformStatsObjects().get().get(0);
assertEquals(193246, platformStats1.getAndroid());
assertEquals(145436, platformStats1.getIos());
assertEquals(DateFormats.DATE_PARSER.parseDateTime("2013-07-01 00:00:00"), platformStats1.getDate());
PlatformStats platformStats2 = appOpensObj.getPlatformStatsObjects().get().get(1);
assertEquals(100203, platformStats2.getAndroid());
assertEquals(45608, platformStats2.getIos());
assertEquals(DateFormats.DATE_PARSER.parseDateTime("2013-08-01 00:00:00"), platformStats2.getDate());
}
@Test
public void testOptInsDeserializer() throws IOException {
String optInsJson = "{\n" +
" \"next_page\": \"Hey Next Page\",\n" +
" \"optins\":[ \n" +
" { \n" +
" \"date\":\"2013-07-01 00:00:00\",\n" +
" \"ios\":145436,\n" +
" \"android\":193246\n" +
" },\n" +
" { \n" +
" \"date\":\"2013-08-01 00:00:00\",\n" +
" \"ios\":45608,\n" +
" \"android\":100203\n" +
" }\n" +
" ]\n" +
"}";
PlatformStatsResponse optInsObj = mapper.readValue(optInsJson, PlatformStatsResponse.class);
assertNotNull(optInsObj);
System.out.println(optInsObj);
PlatformStats platformStats1 = optInsObj.getPlatformStatsObjects().get().get(0);
assertEquals(193246, platformStats1.getAndroid());
assertEquals(145436, platformStats1.getIos());
assertEquals(DateFormats.DATE_PARSER.parseDateTime("2013-07-01 00:00:00"), platformStats1.getDate());
PlatformStats platformStats2 = optInsObj.getPlatformStatsObjects().get().get(1);
assertEquals(100203, platformStats2.getAndroid());
assertEquals(45608, platformStats2.getIos());
assertEquals(DateFormats.DATE_PARSER.parseDateTime("2013-08-01 00:00:00"), platformStats2.getDate());
}
@Test
public void testOptOutsDeserializer() throws IOException {
String optOutsJson = "{\n" +
" \"next_page\": \"Hey Next Page\",\n" +
" \"optouts\":[ \n" +
" { \n" +
" \"date\":\"2013-07-01 00:00:00\",\n" +
" \"ios\":145436,\n" +
" \"android\":193246\n" +
" },\n" +
" { \n" +
" \"date\":\"2013-08-01 00:00:00\",\n" +
" \"ios\":45608,\n" +
" \"android\":100203\n" +
" }\n" +
" ]\n" +
"}";
PlatformStatsResponse optOutsObj = mapper.readValue(optOutsJson, PlatformStatsResponse.class);
assertNotNull(optOutsObj);
System.out.println(optOutsObj);
PlatformStats platformStats1 = optOutsObj.getPlatformStatsObjects().get().get(0);
assertEquals(193246, platformStats1.getAndroid());
assertEquals(145436, platformStats1.getIos());
assertEquals(DateFormats.DATE_PARSER.parseDateTime("2013-07-01 00:00:00"), platformStats1.getDate());
PlatformStats platformStats2 = optOutsObj.getPlatformStatsObjects().get().get(1);
assertEquals(100203, platformStats2.getAndroid());
assertEquals(45608, platformStats2.getIos());
assertEquals(DateFormats.DATE_PARSER.parseDateTime("2013-08-01 00:00:00"), platformStats2.getDate());
}
}