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;
18
19 import com.atlassian.jira.rest.client.domain.CimFieldInfo;
20 import org.codehaus.jettison.json.JSONException;
21 import org.hamcrest.Matchers;
22 import org.junit.Test;
23 import org.junit.matchers.JUnitMatchers;
24
25 import java.util.Map;
26
27 import static org.junit.Assert.*;
28
29
30
31
32 public class CimFieldsInfoMapJsonParserTest {
33
34 @Test
35 public void testParseWithArrayOfArrayAllowedValuesBug() throws JSONException {
36 final CimFieldsInfoMapJsonParser parser = new CimFieldsInfoMapJsonParser();
37 final Map<String, CimFieldInfo> fieldsInfo = parser.parse(
38 ResourceUtil.getJsonObjectFromResource("/json/createmeta/fieldsinfo/valid-with-array-of-array-bug.json")
39 );
40
41 assertElementsNotIterable(fieldsInfo.get("customfield_10010").getAllowedValues());
42 assertElementsNotIterable(fieldsInfo.get("customfield_10020").getAllowedValues());
43 assertElementsNotIterable(fieldsInfo.get("customfield_10021").getAllowedValues());
44 }
45
46 @Test
47 public void testParseWithArrayOfArrayAllowedValuesBugFixed() throws JSONException {
48 final CimFieldsInfoMapJsonParser parser = new CimFieldsInfoMapJsonParser();
49 final Map<String, CimFieldInfo> fieldsInfo = parser.parse(
50 ResourceUtil.getJsonObjectFromResource("/json/createmeta/fieldsinfo/valid-with-array-of-array-bug-fixed.json")
51 );
52
53 assertElementsNotIterable(fieldsInfo.get("customfield_10010").getAllowedValues());
54 assertElementsNotIterable(fieldsInfo.get("customfield_10020").getAllowedValues());
55 assertElementsNotIterable(fieldsInfo.get("customfield_10021").getAllowedValues());
56 }
57
58 private void assertElementsNotIterable(final Iterable<Object> allowedValues) {
59 assertThat(allowedValues, JUnitMatchers.everyItem(Matchers.not(Matchers.instanceOf(Iterable.class))));
60 }
61 }