diff options
Diffstat (limited to 'tests/new/foemmel/TheAspect.java')
-rw-r--r-- | tests/new/foemmel/TheAspect.java | 221 |
1 files changed, 221 insertions, 0 deletions
diff --git a/tests/new/foemmel/TheAspect.java b/tests/new/foemmel/TheAspect.java new file mode 100644 index 000000000..7c1b8fc15 --- /dev/null +++ b/tests/new/foemmel/TheAspect.java @@ -0,0 +1,221 @@ +import org.aspectj.testing.Tester; + +privileged aspect TheAspect perthis(this(TheObject)) { + private TheObject theObject; + private int myPrivate_int=-1, myPackage_int=-1, myProtected_int=-1, myPublic_int=-1; + + after() returning(TheObject obj): execution(new()) { // CW 7 nonmatching target + theObject = obj; + } + + after() returning(): call(* realMain(..)) { + test_eq(); + test_timeseq(); + test_diveq(); + test_modeq(); + test_pluseq(); + test_minuseq(); + test_leftShifteq(); + test_rightShifteq(); + test_xoreq(); + test_andeq(); + test_unsignedRightShifteq(); + test_postinc(); + test_postdec(); + test_preinc(); + test_predec(); + test_oreq(); + test_gets(); + test_calls(); + } + + public void test_eq() { + theObject.private_int = 1; + theObject.protected_int = 2; + theObject.package_int = 3; + theObject.public_int = 4; + Tester.checkEqual(theObject.private_int,1,"set private_int"); + Tester.checkEqual(theObject.protected_int,2,"set protected_int"); + Tester.checkEqual(theObject.package_int,3,"set package_int"); + Tester.checkEqual(theObject.public_int,4,"set public_int"); + } + + public void test_timeseq() { + theObject.private_int *= 4; + theObject.protected_int *= 4; + theObject.package_int *= 4; + theObject.public_int *= 4; + Tester.checkEqual(theObject.private_int,4,"times private_int"); + Tester.checkEqual(theObject.protected_int,8,"times protected_int"); + Tester.checkEqual(theObject.package_int,12,"times package_int"); + Tester.checkEqual(theObject.public_int,16,"times public_int"); + } + + public void test_diveq() { + theObject.private_int /= 2; + theObject.protected_int /= 2; + theObject.package_int /= 2; + theObject.public_int /= 2; + Tester.checkEqual(theObject.private_int,2,"div private_int"); + Tester.checkEqual(theObject.protected_int,4,"div protected_int"); + Tester.checkEqual(theObject.package_int,6,"div package_int"); + Tester.checkEqual(theObject.public_int,8,"div public_int"); + } + + public void test_modeq() { + theObject.private_int %= 2; + theObject.protected_int %= 3; + theObject.package_int %= 4; + theObject.public_int %= 5; + Tester.checkEqual(theObject.private_int,0,"mod private_int"); + Tester.checkEqual(theObject.protected_int,1,"mod protected_int"); + Tester.checkEqual(theObject.package_int,2,"mod package_int"); + Tester.checkEqual(theObject.public_int,3,"mod public_int"); + } + + public void test_pluseq() { + theObject.private_int += 2; + theObject.protected_int += 2; + theObject.package_int += 2; + theObject.public_int += 2; + Tester.checkEqual(theObject.private_int,2,"plus private_int"); + Tester.checkEqual(theObject.protected_int,3,"plus protected_int"); + Tester.checkEqual(theObject.package_int,4,"plus package_int"); + Tester.checkEqual(theObject.public_int,5,"plus public_int"); + } + + public void test_minuseq() { + theObject.private_int -= 1; + theObject.protected_int -= 1; + theObject.package_int -= 1; + theObject.public_int -= 1; + Tester.checkEqual(theObject.private_int,1,"minus private_int"); + Tester.checkEqual(theObject.protected_int,2,"minus protected_int"); + Tester.checkEqual(theObject.package_int,3,"minus package_int"); + Tester.checkEqual(theObject.public_int,4,"minus public_int"); + } + + public void test_leftShifteq() { + theObject.private_int <<= 1; + theObject.protected_int <<= 1; + theObject.package_int <<= 1; + theObject.public_int <<= 1; + Tester.checkEqual(theObject.private_int,2,"left shift private_int"); + Tester.checkEqual(theObject.protected_int,4,"left shift protected_int"); + Tester.checkEqual(theObject.package_int,6,"left shift package_int"); + Tester.checkEqual(theObject.public_int,8,"left shift public_int"); + } + + public void test_rightShifteq() { + theObject.private_int >>= 1; + theObject.protected_int >>= 1; + theObject.package_int >>= 1; + theObject.public_int >>= 1; + Tester.checkEqual(theObject.private_int,1,"right shift private_int"); + Tester.checkEqual(theObject.protected_int,2,"right shift protected_int"); + Tester.checkEqual(theObject.package_int,3,"right shift package_int"); + Tester.checkEqual(theObject.public_int,4,"right shift public_int"); + } + + public void test_xoreq() { + theObject.private_int ^= 0; + theObject.protected_int ^= 1; + theObject.package_int ^= 1; + theObject.public_int ^= 1; + Tester.checkEqual(theObject.private_int,1,"xor private_int"); + Tester.checkEqual(theObject.protected_int,3,"xor protected_int"); + Tester.checkEqual(theObject.package_int,2,"xor package_int"); + Tester.checkEqual(theObject.public_int,5,"xor public_int"); + } + + public void test_andeq() { + theObject.private_int &= 3; + theObject.protected_int &= 6; + theObject.package_int &= 3; + theObject.public_int &= 4; + Tester.checkEqual(theObject.private_int,1,"and private_int"); + Tester.checkEqual(theObject.protected_int,2,"and protected_int"); + Tester.checkEqual(theObject.package_int,2,"and package_int"); + Tester.checkEqual(theObject.public_int,4,"and public_int"); + } + + public void test_unsignedRightShifteq() { + theObject.private_int >>>= 0; + theObject.protected_int >>>= 1; + theObject.package_int >>>= 1; + theObject.public_int >>>= 2; + Tester.checkEqual(theObject.private_int,1,"unsigned right shift private_int"); + Tester.checkEqual(theObject.protected_int,1,"unsigned right shift protected_int"); + Tester.checkEqual(theObject.package_int,1,"unsigned right shift package_int"); + Tester.checkEqual(theObject.public_int,1,"unsigned right shift public_int"); + } + + public void test_postinc() { + theObject.private_int ++; + theObject.protected_int ++; + theObject.package_int ++; + theObject.public_int ++; + Tester.checkEqual(theObject.private_int,2,"post ++ private_int"); + Tester.checkEqual(theObject.protected_int,2,"post ++ protected_int"); + Tester.checkEqual(theObject.package_int,2,"post ++ package_int"); + Tester.checkEqual(theObject.public_int,2,"post ++ public_int"); + } + + public void test_postdec() { + theObject.private_int --; + theObject.protected_int --; + theObject.package_int --; + theObject.public_int --; + Tester.checkEqual(theObject.private_int,1,"post -- private_int"); + Tester.checkEqual(theObject.protected_int,1,"post -- protected_int"); + Tester.checkEqual(theObject.package_int,1,"post -- package_int"); + Tester.checkEqual(theObject.public_int,1,"post -- public_int"); + } + + public void test_preinc() { + ++ theObject.private_int; + ++ theObject.protected_int; + ++ theObject.package_int; + ++ theObject.public_int; + Tester.checkEqual(theObject.private_int,2,"pre ++ private_int"); + Tester.checkEqual(theObject.protected_int,2,"pre ++ protected_int"); + Tester.checkEqual(theObject.package_int,2,"pre ++ package_int"); + Tester.checkEqual(theObject.public_int,2,"pre ++ public_int"); + } + + public void test_predec() { + -- theObject.private_int; + -- theObject.protected_int; + -- theObject.package_int; + -- theObject.public_int; + Tester.checkEqual(theObject.private_int,1,"pre -- private_int"); + Tester.checkEqual(theObject.protected_int,1,"pre -- protected_int"); + Tester.checkEqual(theObject.package_int,1,"pre -- package_int"); + Tester.checkEqual(theObject.public_int,1,"pre -- public_int"); + } + + public void test_oreq() { + theObject.private_int |= 8; + theObject.protected_int |= 8; + theObject.package_int |= 8; + theObject.public_int |= 8; + Tester.checkEqual(theObject.private_int,9,"or private_int"); + Tester.checkEqual(theObject.protected_int,9,"or protected_int"); + Tester.checkEqual(theObject.package_int,9,"or package_int"); + Tester.checkEqual(theObject.public_int,9,"or public_int"); + } + + public void test_gets() { + myPrivate_int = theObject.private_int; + myProtected_int = theObject.protected_int; + myPackage_int = theObject.package_int; + myPublic_int = theObject.public_int; + } + + public void test_calls() { + theObject.private_call(); + theObject.protected_call(); + theObject.package_call(); + theObject.public_call(); + } +} |