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.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 HtmlLinkAnnotation_Test extends TestBase {
27
28 private static final String CNAME = HtmlLinkAnnotation_Test.class.getName();
29
30
31
32
33
34 HtmlLink a1 = HtmlLinkAnnotation.create()
35 .description("a")
36 .nameProperty("b")
37 .on("c")
38 .uriProperty("d")
39 .build();
40
41 HtmlLink a2 = HtmlLinkAnnotation.create()
42 .description("a")
43 .nameProperty("b")
44 .on("c")
45 .uriProperty("d")
46 .build();
47
48 @Test void a01_basic() {
49 assertBean(a1, "description,nameProperty,on,onClass,uriProperty", "[a],b,[c],[],d");
50 }
51
52 @Test void a02_testEquivalency() {
53 assertEquals(a2, a1);
54 assertNotEqualsAny(a1.hashCode(), 0, -1);
55 assertEquals(a1.hashCode(), a2.hashCode());
56 }
57
58
59
60
61
62 @Test void b01_testEquivalencyInPropertyStores() {
63 var bc1 = BeanContext.create().annotations(a1).build();
64 var bc2 = BeanContext.create().annotations(a2).build();
65 assertSame(bc1, bc2);
66 }
67
68
69
70
71
72 public static class C1 {
73 public int f1;
74 public void m1() {}
75 }
76 public static class C2 {
77 public int f2;
78 public void m2() {}
79 }
80
81 @Test void c01_otherMethods() {
82 var c1 = HtmlLinkAnnotation.create(C1.class).on(C2.class).build();
83 var c2 = HtmlLinkAnnotation.create("a").on("b").build();
84
85 assertBean(c1, "on", "["+CNAME+"$C1,"+CNAME+"$C2]");
86 assertBean(c2, "on", "[a,b]");
87 }
88
89
90
91
92
93 @HtmlLink(
94 description={ "a" },
95 nameProperty="b",
96 on="c",
97 uriProperty="d"
98 )
99 public static class D1 {}
100 HtmlLink d1 = D1.class.getAnnotationsByType(HtmlLink.class)[0];
101
102 @HtmlLink(
103 description={ "a" },
104 nameProperty="b",
105 on="c",
106 uriProperty="d"
107 )
108 public static class D2 {}
109 HtmlLink d2 = D2.class.getAnnotationsByType(HtmlLink.class)[0];
110
111 @Test void d01_comparisonWithDeclarativeAnnotations() {
112 assertEqualsAll(a1, d1, d2);
113 assertNotEqualsAny(a1.hashCode(), 0, -1);
114 assertEqualsAll(a1.hashCode(), d1.hashCode(), d2.hashCode());
115 }
116 }