|
| 1 | +package org.zendesk.client.v2.model; |
| 2 | + |
| 3 | +import com.fasterxml.jackson.core.JsonProcessingException; |
| 4 | +import com.fasterxml.jackson.databind.ObjectMapper; |
| 5 | +import org.junit.Test; |
| 6 | + |
| 7 | +import java.util.Arrays; |
| 8 | + |
| 9 | +import static org.junit.Assert.assertArrayEquals; |
| 10 | +import static org.junit.Assert.assertEquals; |
| 11 | +import static org.junit.Assert.assertNotNull; |
| 12 | + |
| 13 | +public class TriggerTest { |
| 14 | + |
| 15 | + private Trigger parseJson(byte[] json) { |
| 16 | + ObjectMapper mapper = new ObjectMapper(); |
| 17 | + try { |
| 18 | + return mapper.readValue(json, Trigger.class); |
| 19 | + } catch (Exception e) { |
| 20 | + e.printStackTrace(); |
| 21 | + return null; |
| 22 | + } |
| 23 | + } |
| 24 | + |
| 25 | + private byte [] writeJson(Trigger trigger) throws JsonProcessingException { |
| 26 | + return new ObjectMapper().writeValueAsBytes(trigger); |
| 27 | + } |
| 28 | + |
| 29 | + @Test |
| 30 | + public void testTriggerWithComplexActionValues() throws Exception { |
| 31 | + String json = "{\"id\":12345678,\"title\":\"Test Trigger\",\"active\":true,\"position\":45,\"conditions\":{\"all\":[],\"any\":[{\"field\":\"comment_includes_word\",\"operator\":\"includes\",\"value\":\"@triggerTest\"}]},\"actions\":[{\"field\":\"notification_target\",\"value\":[\"1234567890\",[[\"key1\",\"value1\"],[\"key2\",\"value2\"]]]}],\"createdAt\":null,\"updatedAt\":null}"; |
| 32 | + Trigger trigger = parseJson(json.getBytes()); |
| 33 | + assertNotNull(trigger); |
| 34 | + assertEquals("Test Trigger", trigger.getTitle()); |
| 35 | + assertEquals(1, trigger.getActions().size()); |
| 36 | + assertEquals("notification_target", trigger.getActions().get(0).getField()); |
| 37 | + assertArrayEquals(new Object [] {"1234567890", Arrays.asList(Arrays.asList("key1", "value1"), Arrays.asList("key2", "value2"))}, trigger.getActions().get(0).getValue()); |
| 38 | + assertEquals(0, trigger.getConditions().getAll().size()); |
| 39 | + assertEquals(1, trigger.getConditions().getAny().size()); |
| 40 | + assertEquals("comment_includes_word", trigger.getConditions().getAny().get(0).getField()); |
| 41 | + assertEquals("includes", trigger.getConditions().getAny().get(0).getOperator()); |
| 42 | + assertEquals("@triggerTest", trigger.getConditions().getAny().get(0).getValue()); |
| 43 | + assertEquals(json, new String(writeJson(trigger))); |
| 44 | + } |
| 45 | + |
| 46 | + @Test |
| 47 | + public void testTriggerWithMultilineActionValues() throws Exception { |
| 48 | + String json = "{\"id\":12345678,\"title\":\"Test Trigger\",\"active\":true,\"position\":45,\"conditions\":{\"all\":[],\"any\":[{\"field\":\"comment_includes_word\",\"operator\":\"includes\",\"value\":\"@triggerTest\"}]},\"actions\":[{\"field\":\"notification_user\",\"value\":[\"09876543\",\"Trigger Target 1 {{ticket.title}}\",\"Test Multiline\\n\\n{{ticket.comments_formatted}}\\n\\n--------------------------\"]},{\"field\":\"notification_target\",\"value\":[\"98765432\",\"{\\n \\\"color\\\":\\\"purple\\\",\\n \\\"message_format\\\":\\\"text\\\",\\n \\\"message\\\":\\\"Trigger Target 2 {{ticket.title}}.\\\"\\n}\"]}],\"createdAt\":null,\"updatedAt\":null}"; |
| 49 | + Trigger trigger = parseJson(json.getBytes()); |
| 50 | + assertNotNull(trigger); |
| 51 | + assertEquals("Test Trigger", trigger.getTitle()); |
| 52 | + assertEquals(2, trigger.getActions().size()); |
| 53 | + assertEquals("notification_user", trigger.getActions().get(0).getField()); |
| 54 | + assertArrayEquals(new String [] {"09876543", "Trigger Target 1 {{ticket.title}}", "Test Multiline\n\n{{ticket.comments_formatted}}\n\n--------------------------"}, trigger.getActions().get(0).getValue()); |
| 55 | + assertEquals("notification_target", trigger.getActions().get(1).getField()); |
| 56 | + assertArrayEquals(new String [] {"98765432", "{\n \"color\":\"purple\",\n \"message_format\":\"text\",\n \"message\":\"Trigger Target 2 {{ticket.title}}.\"\n}"}, trigger.getActions().get(1).getValue()); |
| 57 | + assertEquals(0, trigger.getConditions().getAll().size()); |
| 58 | + assertEquals(1, trigger.getConditions().getAny().size()); |
| 59 | + assertEquals("comment_includes_word", trigger.getConditions().getAny().get(0).getField()); |
| 60 | + assertEquals("includes", trigger.getConditions().getAny().get(0).getOperator()); |
| 61 | + assertEquals("@triggerTest", trigger.getConditions().getAny().get(0).getValue()); |
| 62 | + assertEquals(json, new String(writeJson(trigger))); |
| 63 | + } |
| 64 | +} |
0 commit comments