1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.atlassian.jira.rest.client.internal.json.gen;
18
19 import com.atlassian.jira.rest.client.api.domain.input.ComplexIssueInputFieldValue;
20 import com.atlassian.jira.rest.client.api.domain.input.FieldInput;
21 import com.atlassian.jira.rest.client.api.domain.input.IssueInput;
22 import com.atlassian.jira.rest.client.api.domain.input.PropertyInput;
23 import com.atlassian.jira.rest.client.internal.json.ResourceUtil;
24 import com.atlassian.jira.rest.client.test.matchers.JSONObjectMatcher;
25 import com.google.common.collect.ImmutableMap;
26 import com.google.common.collect.Maps;
27 import org.codehaus.jettison.json.JSONObject;
28 import org.junit.Assert;
29 import org.junit.Test;
30
31 import java.util.ArrayList;
32
33
34
35
36 public class IssueInputJsonGeneratorTest {
37
38 @Test
39 public void testGenerate() throws Exception {
40 final IssueInputJsonGenerator generator = new IssueInputJsonGenerator();
41 final IssueInput issueInput = IssueInput.createWithFields(
42 new FieldInput("string", "String value"),
43 new FieldInput("integer", 1),
44 new FieldInput("long", 1L),
45 new FieldInput("complex", new ComplexIssueInputFieldValue(ImmutableMap.<String, Object>of(
46 "string", "string",
47 "integer", 1,
48 "long", 1L,
49 "complex", ComplexIssueInputFieldValue.with("test", "id")
50 )))
51 );
52
53 issueInput.getProperties().add(new PropertyInput("testKey", "{\"testValue\" : \"foo\"}"));
54
55 final JSONObject expected = ResourceUtil.getJsonObjectFromResource("/json/issueInput/valid.json");
56 final JSONObject actual = generator.generate(issueInput);
57 Assert.assertThat(expected, JSONObjectMatcher.isEqual(actual));
58 }
59
60 @Test
61 public void testGenerateWithEmptyInput() throws Exception {
62 final IssueInputJsonGenerator generator = new IssueInputJsonGenerator();
63 final IssueInput issueInput = new IssueInput(Maps.<String, FieldInput>newHashMap(), new ArrayList<PropertyInput>());
64
65 final JSONObject expected = ResourceUtil.getJsonObjectFromResource("/json/issueInput/empty.json");
66 final JSONObject actual = generator.generate(issueInput);
67 Assert.assertThat(expected, JSONObjectMatcher.isEqual(actual));
68 }
69
70 @Test
71 public void testGenerateWithNullInput() throws Exception {
72 final IssueInputJsonGenerator generator = new IssueInputJsonGenerator();
73 final IssueInput issueInput = null;
74
75 final JSONObject expected = ResourceUtil.getJsonObjectFromResource("/json/issueInput/empty.json");
76 final JSONObject actual = generator.generate(issueInput);
77 Assert.assertThat(expected, JSONObjectMatcher.isEqual(actual));
78 }
79 }