1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau;
18
19 import static org.apache.juneau.TestUtils.*;
20 import static org.junit.jupiter.api.Assertions.*;
21
22 import org.apache.juneau.json.*;
23 import org.apache.juneau.testutils.pojos.*;
24 import org.junit.jupiter.api.*;
25
26 class BeanContext_Test extends TestBase {
27
28 BeanContext bc = BeanContext.DEFAULT;
29 BeanSession bs = BeanContext.DEFAULT_SESSION;
30
31 public interface A1 {
32 int getF1();
33 void setF1(int f1);
34 }
35
36 @Test void a01_normalCachableBean() throws ExecutableException {
37 var cm1 = bc.getClassMeta(A1.class);
38 var cm2 = bc.getClassMeta(A1.class);
39 assertSame(cm1, cm2);
40 }
41
42 interface A2 {
43 void foo(int x);
44 }
45
46 @Test void a02_lambdaExpressionsNotCached() throws ExecutableException {
47 var bc2 = BeanContext.DEFAULT;
48 var fi = (A2)System.out::println;
49 var cm1 = bc2.getClassMeta(fi.getClass());
50 var cm2 = bc2.getClassMeta(fi.getClass());
51 assertNotSame(cm1, cm2);
52 }
53
54 @Test void a03_proxiesNotCached() throws ExecutableException {
55 var a1 = bs.getBeanMeta(A1.class).newBean(null);
56 var cm1 = bc.getClassMeta(a1.getClass());
57 var cm2 = bc.getClassMeta(a1.getClass());
58 assertNotSame(cm1, cm2);
59 }
60
61 @Test void b01_ignoreUnknownEnumValues() {
62 var p1 = JsonParser.DEFAULT;
63 assertThrowsWithMessage(Exception.class, "Could not resolve enum value 'UNKNOWN' on class 'org.apache.juneau.testutils.pojos.TestEnum'", () -> p1.parse("'UNKNOWN'", TestEnum.class));
64
65 var p2 = JsonParser.create().ignoreUnknownEnumValues().build();
66 assertNull(p2.parse("'UNKNOWN'", TestEnum.class));
67 }
68 }