package com.urbanairship.api.push.parse.notification.richpush;
import com.urbanairship.api.push.model.PushExpiry;
import com.urbanairship.api.push.model.notification.richpush.RichPushMessage;
import com.urbanairship.api.push.parse.PushObjectMapper;
import org.codehaus.jackson.map.ObjectMapper;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
public class RichPushDeserializerTest {
private static final ObjectMapper mapper = PushObjectMapper.getInstance();
@Test
public void testSimple() throws Exception {
String json
= "{"
+ " \"title\": \"T\","
+ " \"body\": \"B\""
+ "}";
RichPushMessage expected = RichPushMessage.newBuilder()
.setTitle("T")
.setBody("B")
.build();
RichPushMessage payload = mapper.readValue(json, RichPushMessage.class);
assertNotNull(payload);
assertNotNull(payload.getTitle());
assertNotNull(payload.getBody());
assertFalse(payload.getExtra().isPresent());
assertEquals(expected, payload);
}
@Test
public void testAll() throws Exception {
String json
= "{"
+ " \"title\": \"T\","
+ " \"body\": \"B\","
+ " \"content-type\": \"A/B\","
+ " \"content-encoding\": \"utf8\","
+ " \"expiry\" : \"2018-01-01T00:00:00\","
+ " \"extra\": {"
+ " \"foo\" : \"bar\""
+ " }"
+ "}";
RichPushMessage expected = RichPushMessage.newBuilder()
.setTitle("T")
.setBody("B")
.setContentType("A/B")
.setContentEncoding("utf8")
.setExpiry(PushExpiry.newBuilder().setExpiryTimeStamp(new DateTime(2018, 1, 1, 0, 0, 0, DateTimeZone.UTC)).build())
.addExtraEntry("foo", "bar")
.build();
RichPushMessage payload = mapper.readValue(json, RichPushMessage.class);
assertTrue(payload.getExtra().isPresent());
assertEquals(expected, payload);
}
}