1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.urlencoding;
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.urlencoding.annotation.*;
28 import org.junit.jupiter.api.*;
29
30
31
32
33 class UrlEncodingConfigAnnotationTest 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 @UrlEncodingConfig(
48 expandedParams="$X{true}"
49 )
50 static class A {}
51 static ClassInfo a = ClassInfo.of(A.class);
52
53 @Test void basicSerializer() {
54 var al = AnnotationWorkList.of(sr, rstream(a.getAnnotations()));
55 var x = UrlEncodingSerializer.create().apply(al).build().getSession();
56 check("true", x.isExpandedParams());
57 }
58
59 @Test void basicParser() {
60 var al = AnnotationWorkList.of(sr, rstream(a.getAnnotations()));
61 var x = UrlEncodingParser.create().apply(al).build().getSession();
62 check("true", x.isExpandedParams());
63 }
64
65
66
67
68
69 @UrlEncodingConfig()
70 static class B {}
71 static ClassInfo b = ClassInfo.of(B.class);
72
73 @Test void noValuesSerializer() {
74 var al = AnnotationWorkList.of(sr, rstream(b.getAnnotations()));
75 var x = UrlEncodingSerializer.create().apply(al).build().getSession();
76 check("false", x.isExpandedParams());
77 }
78
79 @Test void noValuesParser() {
80 var al = AnnotationWorkList.of(sr, rstream(b.getAnnotations()));
81 var x = UrlEncodingParser.create().apply(al).build().getSession();
82 check("false", x.isExpandedParams());
83 }
84
85
86
87
88
89 static class C {}
90 static ClassInfo c = ClassInfo.of(C.class);
91
92 @Test void noAnnotationSerializer() {
93 var al = AnnotationWorkList.of(sr, rstream(c.getAnnotations()));
94 var x = UrlEncodingSerializer.create().apply(al).build().getSession();
95 check("false", x.isExpandedParams());
96 }
97
98 @Test void noAnnotationParser() {
99 var al = AnnotationWorkList.of(sr, rstream(c.getAnnotations()));
100 var x = UrlEncodingParser.create().apply(al).build().getSession();
101 check("false", x.isExpandedParams());
102 }
103 }