KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tirsen > nanning > locking > AcceptanceTest


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         /**
11          * @transaction
12          */

13         public void setTitle(String JavaDoc title);
14
15         String JavaDoc getTitle();
16     }
17
18     public static class BookImpl implements Book {
19         private String JavaDoc title;
20
21         public void setTitle(String JavaDoc title) {
22             this.title = title;
23         }
24
25         public String JavaDoc 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