Skip to content

Commit 1d579d4

Browse files
committed
Fix Action model value type
1 parent 371a2fa commit 1d579d4

File tree

2 files changed

+67
-3
lines changed

2 files changed

+67
-3
lines changed

src/main/java/org/zendesk/client/v2/model/Action.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class Action {
1414

1515
@JsonFormat(with = {JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY,
1616
JsonFormat.Feature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED})
17-
private String[] value;
17+
private Object[] value;
1818

1919
public Action() {
2020
}
@@ -32,11 +32,11 @@ public void setField(String field) {
3232
this.field = field;
3333
}
3434

35-
public String[] getValue() {
35+
public Object[] getValue() {
3636
return value;
3737
}
3838

39-
public void setValue(String[] value) {
39+
public void setValue(Object[] value) {
4040
this.value = value;
4141
}
4242

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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

Comments
 (0)