1 package com.tirsen.nanning.locking; 2 3 import com.tirsen.nanning.attribute.AbstractAttributesTest; 4 import com.tirsen.nanning.config.AspectSystem; 5 import com.tirsen.nanning.config.AttributePointcut; 6 import com.tirsen.nanning.config.FindTargetMixinAspect; 7 8 public class AcceptanceTest extends AbstractAttributesTest { 9 public static interface Book { 10 13 public void setTitle(String title); 14 15 String getTitle(); 16 } 17 18 public static class BookImpl implements Book { 19 private String title; 20 21 public void setTitle(String title) { 22 this.title = title; 23 } 24 25 public String getTitle() { 26 return title; 27 } 28 } 29 30 public void testPessimisticLocking() { 31 AspectSystem aspectSystem = new AspectSystem(); 32 aspectSystem.addAspect(new FindTargetMixinAspect()); 33 aspectSystem.addAspect(new PessimisticLockingAspect(new AttributePointcut("transaction"))); 34 35 Book book = (Book) aspectSystem.newInstance(Book.class); 36 book.setTitle("Crime and Punishment"); 37 assertEquals("Crime and Punishment", book.getTitle()); 38 39 ((Lockable) book).lock(); 40 try { 41 book.setTitle("Remembrance of Things Past"); 42 fail(); 43 } catch (LockedException shouldHappen) { 44 } 45 assertEquals("Crime and Punishment", book.getTitle()); 46 } 47 48 } 49 | Popular Tags |