1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.uon;
18
19 import static org.apache.juneau.commons.utils.CollectionUtils.*;
20 import static org.junit.jupiter.api.Assertions.*;
21
22 import java.util.function.*;
23
24 import org.apache.juneau.*;
25 import org.apache.juneau.commons.reflect.*;
26 import org.apache.juneau.svl.*;
27 import org.apache.juneau.uon.annotation.*;
28 import org.junit.jupiter.api.*;
29
30
31
32
33 class UonConfigAnnotationTest extends TestBase {
34
35 private static void check(String expected, Object o) {
36 assertEquals(expected, TO_STRING.apply(o));
37 }
38
39 private static final Function<Object,String> TO_STRING = Object::toString;
40
41 static VarResolverSession sr = VarResolver.create().vars(XVar.class).build().createSession();
42
43
44
45
46
47 @UonConfig(
48 addBeanTypes="$X{true}",
49 decoding="$X{true}",
50 encoding="$X{true}",
51 paramFormat="$X{UON}",
52 validateEnd="$X{true}"
53 )
54 static class A {}
55 static ClassInfo a = ClassInfo.of(A.class);
56
57 @Test void basicSerializer() {
58 var al = AnnotationWorkList.of(sr, rstream(a.getAnnotations()));
59 var x = UonSerializer.create().apply(al).build().getSession();
60 check("true", x.isAddBeanTypes());
61 check("true", x.isEncoding());
62 check("UON", x.getParamFormat());
63 }
64
65 @Test void basicParser() {
66 var al = AnnotationWorkList.of(sr, rstream(a.getAnnotations()));
67 var x = UonParser.create().apply(al).build().getSession();
68 check("true", x.isDecoding());
69 check("true", x.isValidateEnd());
70 }
71
72
73
74
75
76 @UonConfig()
77 static class B {}
78 static ClassInfo b = ClassInfo.of(B.class);
79
80 @Test void noValuesSerializer() {
81 var al = AnnotationWorkList.of(sr, rstream(b.getAnnotations()));
82 var x = UonSerializer.create().apply(al).build().getSession();
83 check("false", x.isAddBeanTypes());
84 check("false", x.isEncoding());
85 check("UON", x.getParamFormat());
86 }
87
88 @Test void noValuesParser() {
89 var al = AnnotationWorkList.of(sr, rstream(b.getAnnotations()));
90 var x = UonParser.create().apply(al).build().getSession();
91 check("false", x.isDecoding());
92 check("false", x.isValidateEnd());
93 }
94
95
96
97
98
99 static class C {}
100 static ClassInfo c = ClassInfo.of(C.class);
101
102 @Test void noAnnotationSerializer() {
103 var al = AnnotationWorkList.of(sr, rstream(c.getAnnotations()));
104 var x = UonSerializer.create().apply(al).build().getSession();
105 check("false", x.isAddBeanTypes());
106 check("false", x.isEncoding());
107 check("UON", x.getParamFormat());
108 }
109
110 @Test void noAnnotationParser() {
111 var al = AnnotationWorkList.of(sr, rstream(c.getAnnotations()));
112 var x = UonParser.create().apply(al).build().getSession();
113 check("false", x.isDecoding());
114 check("false", x.isValidateEnd());
115 }
116 }