1 package ch.ethz.prose.crosscut; 2 3 import junit.framework.TestCase; 4 import ch.ethz.prose.*; 5 import ch.ethz.prose.filter.Fields; 6 import ch.ethz.prose.filter.PointCutter; 7 8 public class ConstructorFieldTest extends TestCase { 9 10 protected static boolean crosscutted; 11 12 public ConstructorFieldTest(String name) { 13 super(name); 14 } 15 16 protected void setUp() throws SystemStartupException { 17 ProseSystem.startup(); 18 crosscutted = false; 19 } 20 21 protected void tearDown() throws SystemTeardownException { 22 ProseSystem.teardown(); 23 } 24 25 public void test_010_empty_constructor() { 26 ProseSystem.getAspectManager().insert(new TestAspect()); 27 TestClass tc = new TestClass(); 28 assertTrue("Field `value' is crosscutted by a GetCut", crosscutted); 29 } 30 31 public void test_020_second_constructor() { 32 ProseSystem.getAspectManager().insert(new TestAspect()); 33 TestClass tc = new TestClass(42); 34 assertTrue("Field `value' is crosscutted by a GetCut", crosscutted); 35 } 36 37 public static class TestClass { 38 int value = 10; 39 public TestClass() {}; 40 public TestClass(int v) { 41 value = v; 42 } 43 } 44 45 public static class TestAspect extends DefaultAspect { 46 public Crosscut c = new SetCut() { 47 public void SET_ARGS(TestClass c, int v) { 48 crosscutted = true; 49 } 50 protected PointCutter pointCutter() { 51 return Fields.named("value"); 52 } 53 protected Class [] potentialCrosscutClasses() { 54 return new Class [] { TestClass.class }; 55 } 56 }; 57 } 58 59 } 60 | Popular Tags |