package com.urbanairship.api.push.parse.notification.android;
import com.google.common.collect.ImmutableMap;
import com.urbanairship.api.push.model.notification.Interactive;
import com.urbanairship.api.push.model.notification.actions.Actions;
import com.urbanairship.api.push.model.notification.actions.AddTagAction;
import com.urbanairship.api.push.model.notification.actions.RemoveTagAction;
import com.urbanairship.api.push.model.notification.actions.TagActionData;
import com.urbanairship.api.push.model.notification.android.Wearable;
import com.urbanairship.api.push.parse.PushObjectMapper;
import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class WearableSerializerTest {
private static final ObjectMapper MAPPER = PushObjectMapper.getInstance();
@Test
public void testWearableSerializer() throws Exception {
String json =
"{" +
"\"background_image\":\"https://yolo.pizza.biz/\"," +
"\"interactive\":{" +
"\"type\":\"ua_yes_no_foreground\"," +
"\"button_actions\":{" +
"\"yes\":{" +
"\"add_tag\":\"butter\"" +
"}," +
"\"no\":{" +
"\"remove_tag\":\"cool\"" +
"}" +
"}" +
"}," +
"\"extra_pages\":[" +
"{" +
"\"title\":\"Title1\"," +
"\"alert\":\"An alert\"" +
"}," +
"{" +
"\"title\":\"Title2\"," +
"\"alert\":\"An alert again\"" +
"}" +
"]" +
"}";
AddTagAction butterTag = new AddTagAction(TagActionData.single("butter"));
RemoveTagAction coolTag = new RemoveTagAction(TagActionData.single("cool"));
ImmutableMap<String, Actions> buttonActions = ImmutableMap.<String,Actions>builder()
.put("yes", Actions.newBuilder().addTags(butterTag).build())
.put("no", Actions.newBuilder().removeTags(coolTag).build())
.build();
Interactive interactive = Interactive.newBuilder()
.setType("ua_yes_no_foreground")
.setButtonActions(buttonActions)
.build();
Wearable wearable = Wearable.newBuilder()
.setBackgroundImage("https://yolo.pizza.biz/")
.setInteractive(interactive)
.addExtraPage("Title1", "An alert")
.addExtraPage("Title2", "An alert again")
.build();
String parsedJson = MAPPER.writeValueAsString(wearable);
assertEquals(json,parsedJson);
}
}