private Pair<DeltaStore, WaveletDeltaRecord> newDeltaStoreWithRecord(WaveletName waveletName) throws Exception { DeltaStore store = newDeltaStore(); DeltasAccess wavelet = store.open(waveletName); WaveletDeltaRecord record = createRecord(); wavelet.append(ImmutableList.of(record)); wavelet.close(); return new Pair<DeltaStore, WaveletDeltaRecord>(store, record); }
public void testWaveIdIteratorLimits() throws Exception { Pair<DeltaStore,WaveletDeltaRecord> pair = newDeltaStoreWithRecord(WAVE1_WAVELET1); DeltaStore store = pair.first; DeltasAccess wavelet = store.open(WAVE2_WAVELET1); WaveletDeltaRecord record = createRecord(); wavelet.append(ImmutableList.of(record)); wavelet.close(); ExceptionalIterator<WaveId, PersistenceException> iterator = store.getWaveIdIterator(); assertTrue(iterator.hasNext()); WaveId waveId1 = iterator.next(); assertTrue(iterator.hasNext()); WaveId waveId2 = iterator.next(); // This is necessary because the order of waveIds is implementation specific. if (WAVE1_WAVELET1.waveId.equals(waveId1)) { assertEquals(WAVE2_WAVELET1.waveId, waveId2); } else { assertEquals(WAVE2_WAVELET1.waveId, waveId1); assertEquals(WAVE1_WAVELET1.waveId, waveId2); } assertFalse(iterator.hasNext()); try { waveId1 = iterator.next(); // Fail the test, it should have thrown an exception. fail(); } catch (NoSuchElementException e) { // Test passes. } }
public void testWaveIdIteratorLimits() throws Exception { Pair<DeltaStore,WaveletDeltaRecord> pair = newDeltaStoreWithRecord(WAVE1_WAVELET1); DeltaStore store = pair.first; DeltasAccess wavelet = store.open(WAVE2_WAVELET1); WaveletDeltaRecord record = createRecord(); wavelet.append(ImmutableList.of(record)); wavelet.close(); ExceptionalIterator<WaveId, PersistenceException> iterator = store.getWaveIdIterator(); assertTrue(iterator.hasNext()); WaveId waveId1 = iterator.next(); assertTrue(iterator.hasNext()); WaveId waveId2 = iterator.next(); // This is necessary because the order of waveIds is implementation specific. if (WAVE1_WAVELET1.waveId.equals(waveId1)) { assertEquals(WAVE2_WAVELET1.waveId, waveId2); } else { assertEquals(WAVE2_WAVELET1.waveId, waveId1); assertEquals(WAVE1_WAVELET1.waveId, waveId2); } assertFalse(iterator.hasNext()); try { waveId1 = iterator.next(); // Fail the test, it should have thrown an exception. fail(); } catch (NoSuchElementException e) { // Test passes. } }
public void testWriteToNewWavelet() throws Exception { Pair<DeltaStore,WaveletDeltaRecord> pair = newDeltaStoreWithRecord(WAVE1_WAVELET1); DeltaStore store = pair.first; WaveletDeltaRecord record = pair.second; DeltasAccess wavelet = store.open(WAVE1_WAVELET1); assertFalse(wavelet.isEmpty()); assertEquals(WAVE1_WAVELET1, wavelet.getWaveletName()); assertEquals(record.getResultingVersion(), wavelet.getEndVersion()); assertEquals(record, wavelet.getDelta(0)); assertEquals(record, wavelet.getDeltaByEndVersion(record.getResultingVersion().getVersion())); assertEquals(record.getAppliedAtVersion(), wavelet.getAppliedAtVersion(0)); assertEquals(record.getAppliedDelta(), wavelet.getAppliedDelta(0)); assertEquals(record.getTransformedDelta(), wavelet.getTransformedDelta(0)); wavelet.close(); }
public void testOpenNonexistantWavelet() throws Exception { DeltaStore store = newDeltaStore(); DeltasAccess wavelet = store.open(WAVE1_WAVELET1); // Sanity check a bunch of values in the wavelet. assertTrue(wavelet.isEmpty()); assertEquals(WAVE1_WAVELET1, wavelet.getWaveletName()); assertNull(wavelet.getEndVersion()); assertNull(wavelet.getDelta(0)); assertNull(wavelet.getDeltaByEndVersion(0)); assertNull(wavelet.getAppliedAtVersion(0)); assertNull(wavelet.getResultingVersion(0)); assertNull(wavelet.getAppliedDelta(0)); assertNull(wavelet.getTransformedDelta(0)); wavelet.close(); }
public void testWriteToNewWavelet() throws Exception { Pair<DeltaStore,WaveletDeltaRecord> pair = newDeltaStoreWithRecord(WAVE1_WAVELET1); DeltaStore store = pair.first; WaveletDeltaRecord record = pair.second; DeltasAccess wavelet = store.open(WAVE1_WAVELET1); assertFalse(wavelet.isEmpty()); assertEquals(WAVE1_WAVELET1, wavelet.getWaveletName()); assertEquals(record.getResultingVersion(), wavelet.getEndVersion()); assertEquals(record, wavelet.getDelta(0)); assertEquals(record, wavelet.getDeltaByEndVersion(record.getResultingVersion().getVersion())); assertEquals(record.getAppliedAtVersion(), wavelet.getAppliedAtVersion(0)); assertEquals(record.getAppliedDelta(), wavelet.getAppliedDelta(0)); assertEquals(record.getTransformedDelta(), wavelet.getTransformedDelta(0)); wavelet.close(); }
public void testOpenNonexistantWavelet() throws Exception { DeltaStore store = newDeltaStore(); DeltasAccess wavelet = store.open(WAVE1_WAVELET1); // Sanity check a bunch of values in the wavelet. assertTrue(wavelet.isEmpty()); assertEquals(WAVE1_WAVELET1, wavelet.getWaveletName()); assertNull(wavelet.getEndVersion()); assertNull(wavelet.getDelta(0)); assertNull(wavelet.getDeltaByEndVersion(0)); assertNull(wavelet.getAppliedAtVersion(0)); assertNull(wavelet.getResultingVersion(0)); assertNull(wavelet.getAppliedDelta(0)); assertNull(wavelet.getTransformedDelta(0)); wavelet.close(); }
@Override public void close() throws IOException { // We don't check if we're already closed, it's ok to call close() twice. isClosed = true; deltasAccess.close(); } }
private Pair<DeltaStore, WaveletDeltaRecord> newDeltaStoreWithRecord(WaveletName waveletName) throws Exception { DeltaStore store = newDeltaStore(); DeltasAccess wavelet = store.open(waveletName); WaveletDeltaRecord record = createRecord(); wavelet.append(ImmutableList.of(record)); wavelet.close(); return new Pair<DeltaStore, WaveletDeltaRecord>(store, record); }
public void testWaveIdIteratorDoesNotReturnEmptyWavelets() throws Exception { DeltaStore store = newDeltaStore(); DeltasAccess wavelet = store.open(WAVE1_WAVELET1); wavelet.close(); assertFalse(store.getWaveIdIterator().hasNext()); }
public void testLookupDoesNotReturnEmptyWavelets() throws Exception { DeltaStore store = newDeltaStore(); DeltasAccess wavelet = store.open(WAVE1_WAVELET1); wavelet.close(); assertTrue(store.lookup(WAVE1_WAVELET1.waveId).isEmpty()); }
public void testLookupDoesNotReturnEmptyWavelets() throws Exception { DeltaStore store = newDeltaStore(); DeltasAccess wavelet = store.open(WAVE1_WAVELET1); wavelet.close(); assertTrue(store.lookup(WAVE1_WAVELET1.waveId).isEmpty()); }
public void testWaveIdIteratorDoesNotReturnEmptyWavelets() throws Exception { DeltaStore store = newDeltaStore(); DeltasAccess wavelet = store.open(WAVE1_WAVELET1); wavelet.close(); assertFalse(store.getWaveIdIterator().hasNext()); }
public void testDeleteWaveletRemovesDeltas() throws Exception { Pair<DeltaStore, WaveletDeltaRecord> pair = newDeltaStoreWithRecord(WAVE1_WAVELET1); DeltaStore store = pair.first; store.delete(WAVE1_WAVELET1); DeltasAccess wavelet = store.open(WAVE1_WAVELET1); assertTrue(wavelet.isEmpty()); wavelet.close(); }
public void testDeleteWaveletRemovesDeltas() throws Exception { Pair<DeltaStore, WaveletDeltaRecord> pair = newDeltaStoreWithRecord(WAVE1_WAVELET1); DeltaStore store = pair.first; store.delete(WAVE1_WAVELET1); DeltasAccess wavelet = store.open(WAVE1_WAVELET1); assertTrue(wavelet.isEmpty()); wavelet.close(); }