1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.bean.swagger;
18
19 import static org.apache.juneau.TestUtils.*;
20 import static org.apache.juneau.bean.swagger.SwaggerBuilder.*;
21 import static org.apache.juneau.junit.bct.BctAssertions.*;
22 import static org.junit.jupiter.api.Assertions.*;
23
24 import java.util.*;
25
26 import org.apache.juneau.*;
27 import org.junit.jupiter.api.*;
28
29
30
31
32 class OperationMap_Test extends TestBase {
33
34
35
36
37 @Test void a01_operationOrdering() {
38 var map = operationMap();
39
40
41 map
42 .append("custom", operation())
43 .append("post", operation())
44 .append("delete", operation())
45 .append("get", operation())
46 .append("options", operation())
47 .append("head", operation())
48 .append("patch", operation())
49 .append("put", operation());
50
51
52 assertList(map.keySet(), "get", "put", "post", "delete", "options", "head", "patch", "custom");
53 }
54
55
56
57
58 @Test void a02_caseInsensitiveOrdering() {
59 var map = operationMap();
60
61
62 map.append("DELETE", operation()).append("Get", operation()).append("POST", operation()).append("put", operation());
63
64
65 assertList(map.keySet(), "get", "put", "post", "delete");
66 }
67
68
69
70
71 @Test void a04_customMethods() {
72 var map = operationMap();
73
74
75 map.put("get", operation().setSummary("a"));
76 map.put("post", operation().setSummary("b"));
77
78
79 map.put("custom1", operation().setSummary("c"));
80 map.put("custom2", operation().setSummary("d"));
81
82
83 assertBeans(map, "key,value{summary}", "get,{a}", "post,{b}", "custom1,{c}", "custom2,{d}");
84 }
85
86
87
88
89 @Test void a05_emptyMap() {
90 var map = operationMap();
91 assertEmpty(map);
92 assertEmpty(map);
93 }
94
95
96
97
98 @Test void a06_duplicateKeys() {
99 var map = operationMap();
100
101 map.put("get", operation().setSummary("a"));
102 map.put("get", operation().setSummary("b"));
103
104
105 assertBeans(map, "key,value{summary}", "get,{b}");
106 }
107
108
109
110
111 @Test void a07_nullValues() {
112 var map = operationMap();
113
114
115 assertDoesNotThrow(() -> map.put("get", null));
116 assertTrue(map.containsKey("get"));
117 assertNull(map.get("get"));
118 }
119
120
121
122
123 @Test void a08_serialization() {
124 var map = operationMap();
125 map.put("get", operation().setSummary("a"));
126 map.put("post", operation().setSummary("b"));
127
128
129 var json = json(map);
130 assertNotNull(json);
131 assertEquals("{get:{summary:'a'},post:{summary:'b'}}", json);
132 }
133
134
135
136
137 @Test void a09_deserialization() {
138 var json = "{get:{summary:'a'},post:{summary:'b'}}";
139 var map = json(json, OperationMap.class);
140 assertBeans(map, "key,value{summary}", "get,{a}", "post,{b}");
141 }
142
143
144
145
146 @Test void a10_iterationOrder() {
147 var map = operationMap();
148 map.put("delete", operation());
149 map.put("get", operation());
150 map.put("post", operation());
151 map.put("put", operation());
152
153 assertList(map.keySet(), "get", "put", "post", "delete");
154 }
155
156
157
158
159 @Test void a11_keyNormalization() {
160 var map = operationMap();
161
162
163 map.put("GET", operation().setSummary("a"));
164 map.put("Post", operation().setSummary("b"));
165 map.put("DELETE", operation().setSummary("c"));
166
167
168 assertTrue(map.containsKey("get"));
169 assertTrue(map.containsKey("post"));
170 assertTrue(map.containsKey("delete"));
171
172
173
174
175 var keys = new ArrayList<>(map.keySet());
176 assertTrue(keys.contains("get"));
177 assertTrue(keys.contains("post"));
178 assertTrue(keys.contains("delete"));
179 assertFalse(keys.contains("GET"));
180 assertFalse(keys.contains("Post"));
181 assertFalse(keys.contains("DELETE"));
182
183
184 assertBeans(map, "value{summary}", "{a}", "{b}", "{c}");
185 }
186 }