1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.msgpack.annotation;
18
19 import static org.apache.juneau.TestUtils.*;
20 import static org.apache.juneau.junit.bct.BctAssertions.*;
21 import static org.junit.jupiter.api.Assertions.*;
22
23 import org.apache.juneau.*;
24 import org.junit.jupiter.api.*;
25
26 class MsgPackAnnotation_Test extends TestBase {
27
28 private static final String CNAME = MsgPackAnnotation_Test.class.getName();
29
30
31
32
33
34 MsgPack a1 = MsgPackAnnotation.create()
35 .description("a")
36 .on("b")
37 .build();
38
39 MsgPack a2 = MsgPackAnnotation.create()
40 .description("a")
41 .on("b")
42 .build();
43
44 @Test void a01_basic() {
45 assertBean(a1, "description,on,onClass", "[a],[b],[]");
46 }
47
48 @Test void a02_testEquivalency() {
49 assertEquals(a2, a1);
50 assertNotEqualsAny(a1.hashCode(), 0, -1);
51 assertEquals(a1.hashCode(), a2.hashCode());
52 }
53
54
55
56
57
58 @Test void b01_testEquivalencyInPropertyStores() {
59 var bc1 = BeanContext.create().annotations(a1).build();
60 var bc2 = BeanContext.create().annotations(a2).build();
61 assertSame(bc1, bc2);
62 }
63
64
65
66
67
68 public static class C1 {
69 public int f1;
70 public void m1() {}
71 }
72 public static class C2 {
73 public int f2;
74 public void m2() {}
75 }
76
77 @Test void c01_otherMethods() throws Exception {
78 var c1 = MsgPackAnnotation.create(C1.class).on(C2.class).build();
79 var c2 = MsgPackAnnotation.create("a").on("b").build();
80 var c3 = MsgPackAnnotation.create().on(C1.class.getField("f1")).on(C2.class.getField("f2")).build();
81 var c4 = MsgPackAnnotation.create().on(C1.class.getMethod("m1")).on(C2.class.getMethod("m2")).build();
82
83 assertBean(c1, "on", "["+CNAME+"$C1,"+CNAME+"$C2]");
84 assertBean(c2, "on", "[a,b]");
85 assertBean(c3, "on", "["+CNAME+"$C1.f1,"+CNAME+"$C2.f2]");
86 assertBean(c4, "on", "["+CNAME+"$C1.m1(),"+CNAME+"$C2.m2()]");
87 }
88
89
90
91
92
93 @MsgPack(
94 description="a",
95 on="b"
96 )
97 public static class D1 {}
98 MsgPack d1 = D1.class.getAnnotationsByType(MsgPack.class)[0];
99
100 @MsgPack(
101 description="a",
102 on="b"
103 )
104 public static class D2 {}
105 MsgPack d2 = D2.class.getAnnotationsByType(MsgPack.class)[0];
106
107 @Test void d01_comparisonWithDeclarativeAnnotations() {
108 assertEqualsAll(a1, d1, d2);
109 assertNotEqualsAny(a1.hashCode(), 0, -1);
110 assertEqualsAll(a1.hashCode(), d1.hashCode(), d2.hashCode());
111 }
112 }