mirror of
https://github.com/eclipse-aspectj/aspectj.git
synced 2024-08-14 14:11:27 +02:00
69 lines
1.7 KiB
Java
69 lines
1.7 KiB
Java
import org.aspectj.testing.Tester;
|
|
|
|
/** @testcase PUREJAVA PR#725 asserts in aspect and declared methods */
|
|
public class IntroducedAssertion {
|
|
public static void main (String[] args) {
|
|
IntroducedAssertion.class.getClassLoader().setClassAssertionStatus("A", true);
|
|
IntroducedAssertion.class.getClassLoader().setClassAssertionStatus("B", true);
|
|
|
|
boolean result = false;
|
|
try {
|
|
C.method(null);
|
|
} catch (AssertionError e) {
|
|
result = true;
|
|
}
|
|
Tester.check(result, "no assert: C.method(null)");
|
|
|
|
result = false;
|
|
try {
|
|
new C(); // field initializer
|
|
} catch (AssertionError e) {
|
|
result = true;
|
|
}
|
|
Tester.check(result, "no assert: new C()");
|
|
|
|
result = false;
|
|
try {
|
|
new D().method(null);
|
|
} catch (AssertionError e) {
|
|
result = true;
|
|
}
|
|
Tester.check(result, "no assert: new D().method(null)");
|
|
}
|
|
}
|
|
|
|
class C {}
|
|
class D {}
|
|
|
|
aspect B {
|
|
int C.i = method(null);
|
|
|
|
// assertion in any introduced code conflicts with any local
|
|
static int C.method( Object o) {
|
|
assert o != null ;
|
|
return 0;
|
|
}
|
|
}
|
|
aspect A {
|
|
|
|
void D.method( Object o) {
|
|
assert o != null ;
|
|
}
|
|
|
|
// assertion in any introduced method conflicts with any local
|
|
void method() {
|
|
assert null != System.getProperty("java.version");
|
|
}
|
|
|
|
// XXX build test cases for other local variants - these work
|
|
/*
|
|
static {
|
|
assert null != System.getProperty("java.version");
|
|
}
|
|
static void aStaticMethod( Object parameter ) {
|
|
assert parameter != null ;
|
|
}
|
|
*/
|
|
}
|
|
|