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