1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
public aspect AtArgsAspect {
pointcut myMethod() : execution(* myMethod(..));
// Exact number of args
// test 0
before() : myMethod() && @args(*,*,*,*,*) {
System.out.print("@args(*,*,*,*,*): ");
System.out.println(TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
@org.aspectj.lang.annotation.SuppressAjWarnings before() : myMethod() && !@args(*,*,*,*,*) {
System.out.print("@args(*,*,*,*,*): ");
System.out.println(!TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
// One too few
// test 1
@org.aspectj.lang.annotation.SuppressAjWarnings before() : myMethod() && @args(*,*,*,*) {
System.out.print("@args(*,*,*,*): ");
System.out.println(TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
before() : myMethod() && !@args(*,*,*,*) {
System.out.print("@args(*,*,*,*): ");
System.out.println(!TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
// One too many
// test 2
@org.aspectj.lang.annotation.SuppressAjWarnings before() : myMethod() && @args(*,*,*,*,*,*) {
System.out.print("@args(*,*,*,*,*,*): ");
System.out.println(TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
before() : myMethod() && !@args(*,*,*,*,*,*) {
System.out.print("@args(*,*,*,*,*,*): ");
System.out.println(!TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
// Exact number of args + ellipsis
// test 3
before() : myMethod() && @args(*,*,..,*,*,*) {
System.out.print("@args(*,*,..,*,*,*): ");
System.out.println(TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
@org.aspectj.lang.annotation.SuppressAjWarnings before() : myMethod() && !@args(*,*,..,*,*,*) {
System.out.print("@args(*,*,..,*,*,*): ");
System.out.println(!TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
// Too few + ellipsis
// test 4
before() : myMethod() && @args(*,*,*,..) {
System.out.print("@args(*,*,*,..): ");
System.out.println(TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
@org.aspectj.lang.annotation.SuppressAjWarnings before() : myMethod() && !@args(*,*,*,..) {
System.out.print("@args(*,*,*,..): ");
System.out.println(!TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
// Now we get to test some annotations!
// Non-inherited
// test 5
before() : myMethod() && @args(MyAnnotation,..) {
System.out.print("@args(@MyAnnotation,..): ");
System.out.println(TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
before() : myMethod() && !@args(MyAnnotation,..) {
System.out.print("@args(@MyAnnotation,..): ");
System.out.println(!TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
// test 6
before() : myMethod() && @args(MyAnnotation,*,*,MyAnnotation,*) {
System.out.print("@args(@MyAnnotation,*,*,@MyAnnotation,*): ");
System.out.println(TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
before() : myMethod() && !@args(MyAnnotation,*,*,MyAnnotation,*) {
System.out.print("@args(@MyAnnotation,*,*,@MyAnnotation,*): ");
System.out.println(!TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
// test 7
before() : myMethod() && @args(MyAnnotation,*,*,MyAnnotation,MyAnnotation) {
System.out.print("@args(@MyAnnotation,*,*,@MyAnnotation,@MyAnnotation): ");
System.out.println(TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
before() : myMethod() && !@args(MyAnnotation,*,*,MyAnnotation,MyAnnotation) {
System.out.print("@args(@MyAnnotation,*,*,@MyAnnotation,@MyAnnotation): ");
System.out.println(!TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
// Inherited
// test 8
before() : myMethod() && @args(..,MyInheritableAnnotation,*) {
System.out.print("@args(..,@MyInheritableAnnotation,*): ");
System.out.println(TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
@org.aspectj.lang.annotation.SuppressAjWarnings before() : myMethod() && !@args(..,MyInheritableAnnotation,*) {
System.out.print("@args(..,@MyInheritableAnnotation,*): ");
System.out.println(!TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
// test 9
before() : myMethod() && @args(..,MyInheritableAnnotation,MyInheritableAnnotation) {
System.out.print("@args(..,@MyInheritableAnnotation,@MyInheritableAnnotation): ");
System.out.println(TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
@org.aspectj.lang.annotation.SuppressAjWarnings before() : myMethod() && !@args(..,MyInheritableAnnotation,MyInheritableAnnotation) {
System.out.print("@args(..,@MyInheritableAnnotation,@MyInheritableAnnotation): ");
System.out.println(!TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
// test 10
before() : myMethod() && @args(..,MyInheritableAnnotation,MyInheritableAnnotation,MyInheritableAnnotation) {
System.out.print("@args(..,@MyInheritableAnnotation,@MyInheritableAnnotation,@MyInheritableAnnotation): ");
System.out.println(TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
before() : myMethod() && !@args(..,MyInheritableAnnotation,MyInheritableAnnotation,MyInheritableAnnotation) {
System.out.print("@args(..,@MyInheritableAnnotation,@MyInheritableAnnotation,@MyInheritableAnnotation): ");
System.out.println(!TestingArgsAnnotations.expected() ? "PASS" : "FAIL");
}
}
|