1 package com.tirsen.nanning.contract; 2 3 import com.tirsen.nanning.AspectInstance; 4 import com.tirsen.nanning.MixinInstance; 5 import com.tirsen.nanning.attribute.AbstractAttributesTest; 6 7 import java.net.MalformedURLException ; 8 9 15 public class ContractInterceptorTest extends AbstractAttributesTest { 16 public void test() throws MalformedURLException { 17 AspectInstance instance = new AspectInstance(); 18 instance.addMixin(new MixinInstance(ContractIntf.class, new ContractImpl())); 19 instance.addInterceptor(new ContractInterceptor()); 20 21 ContractIntf contract = (ContractIntf) instance.getProxy(); 22 23 try { 24 contract.increaseBy(-1); 25 fail("call allowed with pre-condition violation"); 26 } catch (AssertionError shouldHappen) { 27 } 28 29 contract.increaseBy(1); 30 31 try { 32 contract.setValue(-1); 33 fail("call did not fail with class-invariant violation"); 34 } catch (AssertionError shouldHappen) { 35 } 36 } 37 } 38 | Popular Tags |