package com.urbanairship.api.templates.parse;
import com.urbanairship.api.push.model.DeviceType;
import com.urbanairship.api.push.model.DeviceTypeData;
import com.urbanairship.api.push.model.audience.Selectors;
import com.urbanairship.api.templates.model.TemplatePushPayload;
import com.urbanairship.api.templates.model.TemplateSelector;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Test;
import static junit.framework.Assert.assertEquals;
public class TemplatePushPayloadSerializerTest {
private static final ObjectMapper MAPPER = TemplatesObjectMapper.getInstance();
@Test
public void testTemplatePushPayloadSerializer() throws Exception {
TemplateSelector mergeData = TemplateSelector.newBuilder()
.setTemplateId("id123")
.addSubstitution("FIRST_NAME", "Prince")
.addSubstitution("LAST_NAME", "")
.build();
TemplatePushPayload payload = TemplatePushPayload.newBuilder()
.setAudience(Selectors.all())
.setDeviceTypes(DeviceTypeData.of(DeviceType.IOS, DeviceType.ANDROID))
.setMergeData(mergeData)
.build();
String templatePushPayloadSerialized = MAPPER.writeValueAsString(payload);
String templatePushPayloadString =
"{" +
"\"audience\":\"ALL\"," +
"\"device_types\":[\"ios\",\"android\"]," +
"\"merge_data\":{" +
"\"template_id\":\"id123\"," +
"\"substitutions\":{" +
"\"FIRST_NAME\":\"Prince\"," +
"\"LAST_NAME\":\"\"" +
"}" +
"}" +
"}";
JsonNode jsonFromObject = MAPPER.readTree(templatePushPayloadSerialized);
JsonNode jsonFromString = MAPPER.readTree(templatePushPayloadString);
assertEquals(jsonFromObject, jsonFromString);
}
}