1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.transforms;
18
19 import static org.junit.jupiter.api.Assertions.*;
20
21 import org.apache.juneau.*;
22 import org.apache.juneau.collections.*;
23 import org.apache.juneau.swap.*;
24 import org.apache.juneau.swaps.*;
25 import org.junit.jupiter.api.*;
26
27 class BeanMap_Test extends TestBase {
28
29
30
31
32 @Test void a01_filteredEntry() {
33 var session = BeanContext.create().swaps(ByteArraySwap.Base64.class).build().getSession();
34 var m = session.toBeanMap(new A());
35
36 assertEquals("AQID", m.get("f1"));
37 m.put("f1", "BAUG");
38 assertEquals("BAUG", m.get("f1"));
39 assertEquals(4, m.getBean().f1[0]);
40
41 assertNull(m.get("f3"));
42 }
43
44 public static class A {
45 public byte[] f1 = {1,2,3};
46 public byte[] f3 = null;
47 }
48
49
50
51
52
53 @Test void a02_filteredEntryWithMultipleMatchingFilters() {
54 var session = BeanContext.create().swaps(B2Swap.class, B1Swap.class).build().getSession();
55 var bm = session.toBeanMap(B.create());
56 var m = (JsonMap)bm.get("b1");
57 assertEquals("b2", m.getString("type"));
58
59 session = BeanContext.create().swaps(B1Swap.class, B2Swap.class).build().getSession();
60 bm = session.toBeanMap(B.create());
61 m = (JsonMap)bm.get("b1");
62 assertEquals("b1", m.getString("type"));
63 }
64
65 public static class B {
66 public B1 b1;
67
68 static B create() {
69 var b = new B();
70 var b2 = new B2();
71 b2.f1 = "f1";
72 b2.f2 = "f2";
73 b.b1 = b2;
74 return b;
75 }
76 }
77
78 public static class B1 {
79 public String f1;
80 }
81
82 public static class B2 extends B1 {
83 public String f2;
84 }
85
86 public static class B1Swap extends MapSwap<B1> {
87 @Override
88 public JsonMap swap(BeanSession session, B1 b1) {
89 return JsonMap.of("type", "b1", "f1", b1.f1);
90 }
91 }
92
93 public static class B2Swap extends MapSwap<B2> {
94 @Override
95 public JsonMap swap(BeanSession session, B2 b2) {
96 return JsonMap.of("type", "b2", "f1", b2.f1);
97 }
98 }
99 }