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