WaveletAndDeltas waveletAndDeltas = wavelets.get(wavelets.size() - 1); if (waveletAndDeltas.areContiguousToCurrentVersion(deltas)) { waveletAndDeltas.appendDeltas(wavelet, deltas); } else {
public void testContiguousDeltas() throws Exception { addCarolOp.apply(waveletData); TransformedWaveletDelta deltaAdd = new TransformedWaveletDelta(ALEX, V2, 0L, Arrays.asList(addCarolOp)); removeAlexOp.apply(waveletData); TransformedWaveletDelta deltaRemove = new TransformedWaveletDelta(ALEX, V3, 0L, Arrays.asList(removeAlexOp)); DeltaSequence deltas = DeltaSequence.of(deltaAdd, deltaRemove); wavelet.appendDeltas(waveletData, deltas); }
public void testContiguousDeltas() throws Exception { addCarolOp.apply(waveletData); TransformedWaveletDelta deltaAdd = new TransformedWaveletDelta(ALEX, V2, 0L, Arrays.asList(addCarolOp)); removeAlexOp.apply(waveletData); TransformedWaveletDelta deltaRemove = new TransformedWaveletDelta(ALEX, V3, 0L, Arrays.asList(removeAlexOp)); DeltaSequence deltas = DeltaSequence.of(deltaAdd, deltaRemove); wavelet.appendDeltas(waveletData, deltas); }
public void testAppendDeltas() throws Exception { addCarolOp.apply(waveletData); HashedVersion hashedVersionTwo = HashedVersion.unsigned(2); TransformedWaveletDelta delta = new TransformedWaveletDelta(ALEX, hashedVersionTwo, 0L, Arrays.asList(addCarolOp)); wavelet.appendDeltas(waveletData, DeltaSequence.of(delta)); ReadableWaveletData firstSnapshot = wavelet.getSnapshotBeforeDeltas(); assertFalse("Bob should not be a participant", firstSnapshot.getParticipants().contains(BOB)); assertEquals(hashedVersionTwo, wavelet.getVersionAfterDeltas()); ReadableWaveletData latestSnapshot = wavelet.getSnapshotAfterDeltas(); assertNotSame("A copy of the waveletdata must be made", waveletData, latestSnapshot); Collection<ParticipantId> participants = Collections.unmodifiableCollection(Arrays.asList(BOB, CAROL)); assertTrue("Bob and Carol should be participating", latestSnapshot.getParticipants().containsAll(participants)); }
public void testAppendDeltas() throws Exception { addCarolOp.apply(waveletData); HashedVersion hashedVersionTwo = HashedVersion.unsigned(2); TransformedWaveletDelta delta = new TransformedWaveletDelta(ALEX, hashedVersionTwo, 0L, Arrays.asList(addCarolOp)); wavelet.appendDeltas(waveletData, DeltaSequence.of(delta)); ReadableWaveletData firstSnapshot = wavelet.getSnapshotBeforeDeltas(); assertFalse("Bob should not be a participant", firstSnapshot.getParticipants().contains(BOB)); assertEquals(hashedVersionTwo, wavelet.getVersionAfterDeltas()); ReadableWaveletData latestSnapshot = wavelet.getSnapshotAfterDeltas(); assertNotSame("A copy of the waveletdata must be made", waveletData, latestSnapshot); Collection<ParticipantId> participants = Collections.unmodifiableCollection(Arrays.asList(BOB, CAROL)); assertTrue("Bob and Carol should be participating", latestSnapshot.getParticipants().containsAll(participants)); }
public void testNonContiguousDeltas() throws Exception { TransformedWaveletDelta deltaAdd = new TransformedWaveletDelta(ALEX, V1, 0L, Arrays.asList(new NoOp(new WaveletOperationContext(ALEX, 0L, 1, V1)))); TransformedWaveletDelta deltaRemove = new TransformedWaveletDelta(ALEX, V2, 0L, Arrays.asList(new NoOp(new WaveletOperationContext(ALEX, 0L, 1, V2)))); DeltaSequence deltas = DeltaSequence.of(deltaAdd, deltaRemove); try { wavelet.appendDeltas(waveletData, deltas); fail("Expected exception because deltas aren't contiguous"); } catch (IllegalArgumentException e) { // Expected } } }
public void testNonContiguousDeltas() throws Exception { TransformedWaveletDelta deltaAdd = new TransformedWaveletDelta(ALEX, V1, 0L, Arrays.asList(new NoOp(new WaveletOperationContext(ALEX, 0L, 1, V1)))); TransformedWaveletDelta deltaRemove = new TransformedWaveletDelta(ALEX, V2, 0L, Arrays.asList(new NoOp(new WaveletOperationContext(ALEX, 0L, 1, V2)))); DeltaSequence deltas = DeltaSequence.of(deltaAdd, deltaRemove); try { wavelet.appendDeltas(waveletData, deltas); fail("Expected exception because deltas aren't contiguous"); } catch (IllegalArgumentException e) { // Expected } } }