001: package org.apache.ojb.otm;
002:
003: /**
004: * This is the TestSuite based on the ODMG locking documentation
005: */
006: import org.apache.ojb.otm.lock.isolation.TransactionIsolation;
007: import org.apache.ojb.otm.lock.isolation.ReadCommittedIsolation;
008:
009: public class LockTestCommittedReads extends LockTestBase {
010: private static Class CLASS = LockTestCommittedReads.class;
011:
012: public LockTestCommittedReads(String name) {
013: super (name);
014: }
015:
016: protected TransactionIsolation newIsolation() {
017: return new ReadCommittedIsolation();
018: }
019:
020: /**
021: * Test 1
022: */
023: public void testSingleReadLock() {
024: assertTrue(readLock(_tx1));
025: }
026:
027: /**
028: * Test3
029: */
030: public void testReadThenWrite() {
031: assertTrue(readLock(_tx1));
032: assertTrue(writeLock(_tx1));
033: }
034:
035: /**
036: * Test 4
037: */
038: public void testSingleWriteLock() {
039: assertTrue(writeLock(_tx1));
040: }
041:
042: /**
043: * Test 5
044: */
045: public void testWriteThenRead() {
046: assertTrue(writeLock(_tx1));
047: assertTrue(readLock(_tx1));
048: }
049:
050: /**
051: * Test 6
052: */
053: public void testMultipleReadLock() {
054: assertTrue(readLock(_tx1));
055: assertTrue(readLock(_tx2));
056: }
057:
058: /**
059: * Test 8
060: */
061: public void testWriteWithExistingReader() {
062: assertTrue(readLock(_tx1));
063: assertTrue(writeLock(_tx2));
064: }
065:
066: /**
067: * Test 10
068: */
069: public void testWriteWithMultipleReaders() {
070: assertTrue(readLock(_tx1));
071: assertTrue(readLock(_tx2));
072: assertTrue(writeLock(_tx2));
073: }
074:
075: /**
076: * Test 12
077: */
078: public void testWriteWithMultipleReadersOn1() {
079: assertTrue(readLock(_tx1));
080: assertTrue(readLock(_tx2));
081: assertTrue(writeLock(_tx1));
082: }
083:
084: /**
085: * Test 13
086: */
087: public void testReadWithExistingWriter() {
088: assertTrue(writeLock(_tx1));
089: assertTrue(!readLock(_tx2));
090: }
091:
092: /**
093: * Test 14
094: */
095: public void testMultipleWriteLock() {
096: assertTrue(writeLock(_tx1));
097: assertTrue(!writeLock(_tx2));
098: }
099:
100: /**
101: * Test 15
102: */
103: public void testReleaseReadLock() {
104: assertTrue(readLock(_tx1));
105: assertTrue(releaseLock(_tx1));
106: assertTrue(writeLock(_tx2));
107: }
108:
109: /**
110: * Test 17
111: */
112: public void testReleaseWriteLock() {
113: assertTrue(writeLock(_tx1));
114: assertTrue(releaseLock(_tx1));
115: assertTrue(writeLock(_tx2));
116: }
117:
118: /**
119: * Test 18
120: */
121: public void testReadThenRead() {
122: assertTrue(readLock(_tx1));
123: assertTrue(readLock(_tx1));
124: }
125:
126: public static void main(String[] args) {
127: String[] arr = { CLASS.getName() };
128: junit.textui.TestRunner.main(arr);
129: }
130: }
|