1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.objecttools;
18
19 import static org.apache.juneau.TestUtils.*;
20 import static org.apache.juneau.commons.utils.CollectionUtils.*;
21 import static org.junit.jupiter.api.Assertions.*;
22
23 import org.apache.juneau.*;
24 import org.junit.jupiter.api.*;
25
26
27
28
29 class ObjectViewer_Test extends TestBase {
30
31 ObjectViewer ov = new ObjectViewer();
32 BeanSession bs = BeanContext.DEFAULT_SESSION;
33
34
35
36
37
38 @Test void a01_nullInput() {
39 assertNull(ov.run(bs, null, null));
40 }
41
42
43
44
45
46 public static class A {
47 public String f1,f2;
48
49 public static A create(String f1, String f2) {
50 var a = new A();
51 a.f1 = f1;
52 a.f2 = f2;
53 return a;
54 }
55 }
56
57 @Test void b01_simpleBean() {
58 var sa = new ViewArgs("f1");
59 var in = A.create("x1","x2");
60 assertJson("{f1:'x1'}", ov.run(bs, in, sa));
61 assertJson("{f1:'x1'}", ov.runSingle(in, "f1"));
62 }
63
64 @Test void b02_simpleBean_reverseColumns() {
65 var sa = new ViewArgs("f2,f1");
66 var in = A.create("x1","x2");
67 assertJson("{f2:'x2',f1:'x1'}", ov.run(bs, in, sa));
68 assertJson("{f2:'x2',f1:'x1'}", ov.runSingle(in, "f2,f1"));
69 }
70
71 @Test void b03_simpleBean_dupColumns() {
72 var sa = new ViewArgs("f1,f1");
73 var in = A.create("x1","x2");
74 assertJson("{f1:'x1'}", ov.run(bs, in, sa));
75 assertJson("{f1:'x1'}", ov.runSingle(in, "f1,f1"));
76 }
77
78 @Test void b04_simpleBean_nonExistentColumns() {
79 var sa = new ViewArgs("fx");
80 var in = A.create("x1","x2");
81 assertJson("{}", ov.run(bs, in, sa));
82 assertJson("{}", ov.runSingle(in, "fx"));
83 }
84
85 @Test void b05_simpleBean_emptyArgs() {
86 var sa = new ViewArgs("");
87 var in = A.create("x1","x2");
88 assertJson("{}", ov.run(bs, in, sa));
89 assertJson("{}", ov.runSingle(in, ""));
90 }
91
92
93
94
95
96 @Test void b06_simpleBeanMap() {
97 var sa = new ViewArgs("f1");
98 var in = bs.toBeanMap(A.create("x1","x2"));
99 assertJson("{f1:'x1'}", ov.run(bs, in, sa));
100 assertJson("{f1:'x1'}", ov.runSingle(in, "f1"));
101 }
102
103
104
105
106
107 @Test void b07_simpleMap() {
108 var sa = new ViewArgs("f1");
109 var in = m("f1","x1","f2","x2");
110 assertJson("{f1:'x1'}", ov.run(bs, in, sa));
111 assertJson("{f1:'x1'}", ov.runSingle(in, "f1"));
112 }
113
114 @Test void b08_simpleMap_reverseColumns() {
115 var sa = new ViewArgs("f2,f1");
116 var in = m("f1","x1","f2","x2");
117 assertJson("{f2:'x2',f1:'x1'}", ov.run(bs, in, sa));
118 assertJson("{f2:'x2',f1:'x1'}", ov.runSingle(in, "f2,f1"));
119 }
120
121 @Test void b09_simpleMap_nonExistentColumns() {
122 var sa = new ViewArgs("fx");
123 var in = m("f1","x1","f2","x2");
124 assertJson("{}", ov.run(bs, in, sa));
125 assertJson("{}", ov.runSingle(in, "fx"));
126 }
127
128 @Test void b10_simpleMap_emptyView() {
129 var sa = new ViewArgs("");
130 var in = m("f1","x1","f2","x2");
131 assertJson("{}", ov.run(bs, in, sa));
132 assertJson("{}", ov.runSingle(in, ""));
133 }
134
135
136
137
138
139 @Test void c01_beanArray() {
140 var sa = new ViewArgs("f1");
141 var in = a(A.create("x1","x2"));
142 assertJson("[{f1:'x1'}]", ov.run(bs, in, sa));
143 assertJson("[{f1:'x1'}]", ov.run(in, "f1"));
144 }
145
146 @Test void c02_beanArray_reverseColumns() {
147 var sa = new ViewArgs("f2,f1");
148 var in = a(A.create("x1","x2"));
149 assertJson("[{f2:'x2',f1:'x1'}]", ov.run(bs, in, sa));
150 assertJson("[{f2:'x2',f1:'x1'}]", ov.run(in, "f2,f1"));
151 }
152
153 @Test void c03_beanArray_dupColumns() {
154 var sa = new ViewArgs("f1,f1");
155 var in = a(A.create("x1","x2"));
156 assertJson("[{f1:'x1'}]", ov.run(bs, in, sa));
157 assertJson("[{f1:'x1'}]", ov.run(in, "f1,f1"));
158 }
159
160 @Test void c04_beanArray_nonExistentColumns() {
161 var sa = new ViewArgs("fx");
162 var in = a(A.create("x1","x2"));
163 assertJson("[{}]", ov.run(bs, in, sa));
164 assertJson("[{}]", ov.run(in, "fx"));
165 }
166
167 @Test void c05_beanArray_emptyArgs() {
168 var sa = new ViewArgs("");
169 var in = a(A.create("x1","x2"));
170 assertJson("[{}]", ov.run(bs, in, sa));
171 assertJson("[{}]", ov.run(in, ""));
172 }
173
174 @Test void c06_beanArray_withNull() {
175 var sa = new ViewArgs("f1");
176 var in = a(A.create("x1","x2"),null);
177 assertJson("[{f1:'x1'},null]", ov.run(bs, in, sa));
178 assertJson("[{f1:'x1'},null]", ov.run(in, "f1"));
179 }
180
181
182
183
184
185 @Test void d01_beanList() {
186 var sa = new ViewArgs("f1");
187 var in = l(A.create("x1","x2"));
188 assertJson("[{f1:'x1'}]", ov.run(bs, in, sa));
189 assertJson("[{f1:'x1'}]", ov.run(in, "f1"));
190 }
191
192 @Test void d02_beanList_reverseColumns() {
193 var sa = new ViewArgs("f2,f1");
194 var in = l(A.create("x1","x2"));
195 assertJson("[{f2:'x2',f1:'x1'}]", ov.run(bs, in, sa));
196 assertJson("[{f2:'x2',f1:'x1'}]", ov.run(in, "f2,f1"));
197 }
198
199 @Test void d03_beanList_dupColumns() {
200 var sa = new ViewArgs("f1,f1");
201 var in = l(A.create("x1","x2"));
202 assertJson("[{f1:'x1'}]", ov.run(bs, in, sa));
203 assertJson("[{f1:'x1'}]", ov.run(in, "f1,f1"));
204 }
205
206 @Test void d04_beanList_nonExistentColumns() {
207 var sa = new ViewArgs("fx");
208 var in = l(A.create("x1","x2"));
209 assertJson("[{}]", ov.run(bs, in, sa));
210 assertJson("[{}]", ov.run(in, "fx"));
211 }
212
213 @Test void d05_beanList_emptyArgs() {
214 var sa = new ViewArgs("");
215 var in = l(A.create("x1","x2"));
216 assertJson("[{}]", ov.run(bs, in, sa));
217 assertJson("[{}]", ov.run(in, ""));
218 }
219
220 @Test void d06_beanList_withNull() {
221 var sa = new ViewArgs("f1");
222 var in = l(A.create("x1","x2"),null);
223 assertJson("[{f1:'x1'},null]", ov.run(bs, in, sa));
224 assertJson("[{f1:'x1'},null]", ov.run(in, "f1"));
225 }
226
227
228
229
230
231 @Test void e01_beanSet() {
232 var sa = new ViewArgs("f1");
233 var in = set(A.create("x1","x2"));
234 assertJson("[{f1:'x1'}]", ov.run(bs, in, sa));
235 assertJson("[{f1:'x1'}]", ov.run(in, "f1"));
236 }
237
238 @Test void e02_beanSet_reverseColumns() {
239 var sa = new ViewArgs("f2,f1");
240 var in = set(A.create("x1","x2"));
241 assertJson("[{f2:'x2',f1:'x1'}]", ov.run(bs, in, sa));
242 assertJson("[{f2:'x2',f1:'x1'}]", ov.run(in, "f2,f1"));
243 }
244
245 @Test void e03_beanSet_dupColumns() {
246 var sa = new ViewArgs("f1,f1");
247 var in = set(A.create("x1","x2"));
248 assertJson("[{f1:'x1'}]", ov.run(bs, in, sa));
249 assertJson("[{f1:'x1'}]", ov.run(in, "f1,f1"));
250 }
251
252 @Test void e04_beanSet_nonExistentColumns() {
253 var sa = new ViewArgs("fx");
254 var in = set(A.create("x1","x2"));
255 assertJson("[{}]", ov.run(bs, in, sa));
256 assertJson("[{}]", ov.run(in, "fx"));
257 }
258
259 @Test void e05_beanSet_emptyArgs() {
260 var sa = new ViewArgs("");
261 var in = set(A.create("x1","x2"));
262 assertJson("[{}]", ov.run(bs, in, sa));
263 assertJson("[{}]", ov.run(in, ""));
264 }
265
266 @Test void e06_beanSet_withNull() {
267 var sa = new ViewArgs("f1");
268 var in = set(A.create("x1","x2"),null);
269 assertJson("[{f1:'x1'},null]", ov.run(bs, in, sa));
270 assertJson("[{f1:'x1'},null]", ov.run(in, "f1"));
271 }
272
273
274
275
276
277 @Test void f01_otherObject() {
278 var sa = new ViewArgs("f1");
279 var in = "foobar";
280 assertEquals("foobar", ov.run(bs, in, sa)); }
281
282
283
284
285
286 @Test void g01_mapList() {
287 var sa = new ViewArgs("f1");
288 var in = l(map("f1","x1","f2","x2"));
289 assertJson("[{f1:'x1'}]", ov.run(bs, in, sa));
290 assertJson("[{f1:'x1'}]", ov.run(in, "f1"));
291 }
292
293
294
295
296
297 @Test void h01_beanMapList() {
298 var sa = new ViewArgs("f1");
299 var in = l(bs.toBeanMap(A.create("x1","x2")));
300 assertJson("[{f1:'x1'}]", ov.run(bs, in, sa));
301 assertJson("[{f1:'x1'}]", ov.run(in, "f1"));
302 }
303
304
305
306
307
308 @Test void i01_otherObjectList() {
309 var sa = new ViewArgs("f1");
310 var in = l("foobar");
311 assertJson("['foobar']", ov.run(bs, in, sa));
312 assertJson("['foobar']", ov.run(in, "f1"));
313 }
314 }