diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java | 146 |
1 files changed, 103 insertions, 43 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java index 100f6a32fa..29e34f5007 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionHolderTest.java @@ -22,12 +22,13 @@ import org.eclipse.emf.cdo.common.revision.CDORevisionData; import org.eclipse.emf.cdo.common.revision.CDORevisionResolver; import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta; import org.eclipse.emf.cdo.internal.common.revision.cache.lru.DLRevisionHolder; +import org.eclipse.emf.cdo.internal.common.revision.cache.lru.LRURevisionCache; import org.eclipse.emf.cdo.internal.common.revision.cache.lru.LRURevisionHolder; import org.eclipse.emf.cdo.internal.common.revision.cache.lru.LRURevisionList; +import org.eclipse.emf.cdo.internal.common.revision.cache.lru.RevisionHolder; import org.eclipse.emf.cdo.spi.common.InternalCDOList; import org.eclipse.emf.cdo.spi.common.InternalCDORevision; -import org.eclipse.net4j.tests.AbstractOMTest; import org.eclipse.net4j.util.io.ExtendedDataOutput; import java.io.IOException; @@ -38,8 +39,48 @@ import java.util.Map; /** * @author Eike Stepper */ -public class RevisionHolderTest extends AbstractOMTest +public class RevisionHolderTest extends AbstractCDOTest { + public void testChronology() throws Exception + { + LRURevisionCache cache = new LRURevisionCache(); + cache.activate(); + + TestRevision r1v1 = new TestRevision(1, 1, 1); + cache.addRevision(r1v1); + assertEquals(CDORevision.UNSPECIFIED_DATE, r1v1.getRevised()); + + TestRevision r1v2 = new TestRevision(1, 2, 6); + cache.addRevision(r1v2); + assertEquals(CDORevision.UNSPECIFIED_DATE, r1v2.getRevised()); + assertEquals(r1v2.getCreated() - 1, r1v1.getRevised()); + + TestRevision r1v3 = new TestRevision(1, 3, 11); + cache.addRevision(r1v3); + assertEquals(CDORevision.UNSPECIFIED_DATE, r1v3.getRevised()); + assertEquals(r1v3.getCreated() - 1, r1v2.getRevised()); + assertEquals(r1v2.getCreated() - 1, r1v1.getRevised()); + + CDOID id = r1v1.getID(); + + RevisionHolder h1v3 = cache.getHolder(id); + assertEquals(r1v3, h1v3.getRevision()); + + RevisionHolder h1v2 = h1v3.getNext(); + assertEquals(r1v2, h1v2.getRevision()); + + RevisionHolder h1v1 = h1v2.getNext(); + assertEquals(r1v1, h1v1.getRevision()); + assertEquals(null, h1v1.getNext()); + + h1v2 = h1v1.getPrev(); + assertEquals(r1v2, h1v2.getRevision()); + + h1v3 = h1v2.getPrev(); + assertEquals(r1v3, h1v3.getRevision()); + assertEquals(null, h1v3.getPrev()); + } + public void testAddHead() throws Exception { LinkedList<LRURevisionHolder> linkedList = new LinkedList<LRURevisionHolder>(); @@ -196,64 +237,103 @@ public class RevisionHolderTest extends AbstractOMTest { private CDOID id; - public TestRevision(long id) + private int version; + + private long created; + + private long revised; + + public TestRevision(long id, int version, long created, long revised) { this.id = CDOIDUtil.createLong(id); + this.version = version; + this.created = created; + this.revised = revised; } - public CDOClass getCDOClass() + public TestRevision(long id, int version, long created) { - return null; + this(id, version, created, CDORevision.UNSPECIFIED_DATE); } - public long getCreated() + public TestRevision(long id) { - return 0; + this(id, 0, CDORevision.UNSPECIFIED_DATE); } - public CDORevisionData getData() + public CDOID getID() { - return null; + return id; } - public CDOID getID() + public void setID(CDOID id) { - return id; + this.id = id; } - public long getRevised() + public int getVersion() { - return 0; + return version; } - public CDORevisionResolver getRevisionResolver() + public void setVersion(int version) { - return null; + this.version = version; } - public int getVersion() + public long getCreated() { - return 0; + return created; } - public boolean isCurrent() + public void setCreated(long created) { - return false; + this.created = created; } - public boolean isResource() + public long getRevised() + { + return revised; + } + + public void setRevised(long revised) { - return false; + this.revised = revised; + } + + public boolean isCurrent() + { + return revised == UNSPECIFIED_DATE; } public boolean isTransactional() { - return false; + return version < 0; } public boolean isValid(long timeStamp) { - return false; + return (revised == UNSPECIFIED_DATE || revised >= timeStamp) && timeStamp >= created; + } + + public CDOClass getCDOClass() + { + throw new UnsupportedOperationException(); + } + + public CDORevisionData getData() + { + throw new UnsupportedOperationException(); + } + + public CDORevisionResolver getRevisionResolver() + { + throw new UnsupportedOperationException(); + } + + public boolean isResource() + { + throw new UnsupportedOperationException(); } public CDORevisionDelta compare(CDORevision origin) @@ -381,16 +461,6 @@ public class RevisionHolderTest extends AbstractOMTest throw new UnsupportedOperationException(); } - public void setCreated(long created) - { - throw new UnsupportedOperationException(); - } - - public void setID(CDOID id) - { - throw new UnsupportedOperationException(); - } - public void setListSize(CDOFeature feature, int size) { throw new UnsupportedOperationException(); @@ -401,11 +471,6 @@ public class RevisionHolderTest extends AbstractOMTest throw new UnsupportedOperationException(); } - public void setRevised(long revised) - { - throw new UnsupportedOperationException(); - } - public int setTransactional() { throw new UnsupportedOperationException(); @@ -421,11 +486,6 @@ public class RevisionHolderTest extends AbstractOMTest throw new UnsupportedOperationException(); } - public void setVersion(int version) - { - throw new UnsupportedOperationException(); - } - public int size(CDOFeature feature) { throw new UnsupportedOperationException(); |