1*f0340d8eSSorin Bascapackage foo.bar;
2*f0340d8eSSorin Basca
3*f0340d8eSSorin Bascaimport java.lang.annotation.*;
4*f0340d8eSSorin Bascaimport org.junit.*;
5*f0340d8eSSorin Basca
6*f0340d8eSSorin Basca@Target(ElementType.TYPE)
7*f0340d8eSSorin Basca@Retention(RetentionPolicy.RUNTIME)
8*f0340d8eSSorin Bascapublic @interface MyAnnotation {
9*f0340d8eSSorin Basca}
10*f0340d8eSSorin Basca
11*f0340d8eSSorin Bascapublic @interface MyAnnotation2 {
12*f0340d8eSSorin Basca}
13*f0340d8eSSorin Basca
14*f0340d8eSSorin Bascapublic @interface MyAnnotationWithSingleValue {
15*f0340d8eSSorin Basca    int value();
16*f0340d8eSSorin Basca}
17*f0340d8eSSorin Basca
18*f0340d8eSSorin Bascapublic @interface MyAnnotationWithElements {
19*f0340d8eSSorin Basca    int num();
20*f0340d8eSSorin Basca    String str();
21*f0340d8eSSorin Basca}
22*f0340d8eSSorin Basca
23*f0340d8eSSorin Basca@MyAnnotation
24*f0340d8eSSorin Bascaclass CA {
25*f0340d8eSSorin Basca    @Override
26*f0340d8eSSorin Basca    public boolean equals(Object o) { return true; }
27*f0340d8eSSorin Basca
28*f0340d8eSSorin Basca    @Before
29*f0340d8eSSorin Basca    public void setUp() {}
30*f0340d8eSSorin Basca}
31*f0340d8eSSorin Basca
32*f0340d8eSSorin Basca@MyAnnotation2
33*f0340d8eSSorin Bascaclass CB extends CA {
34*f0340d8eSSorin Basca
35*f0340d8eSSorin Basca}
36*f0340d8eSSorin Basca
37*f0340d8eSSorin Basca@MyAnnotationWithSingleValue(42)
38*f0340d8eSSorin Bascaclass CC {
39*f0340d8eSSorin Basca    public boolean foo(Object o) { @SuppressWarnings("unchecked") String s = (String) o; }
40*f0340d8eSSorin Basca
41*f0340d8eSSorin Basca    @Ignore("lalala") @Test public void testSomething() {}
42*f0340d8eSSorin Basca}
43*f0340d8eSSorin Basca
44*f0340d8eSSorin Basca@MyAnnotationWithElements(num = 42, str = "test")
45*f0340d8eSSorin Bascaclass CD {
46*f0340d8eSSorin Basca    @Test(expected = Throwable.class, timeout = 42L) public void testSomethingElse() {}
47*f0340d8eSSorin Basca}
48