/** * Copies a document from one wavelet to another, appending the contents if the * destination document already exists. * * @param sourceWavelet the source wavelet * @param destWavelet the destination wavelet * @param docId the id of the document to copy */ public static void copyDocument(Wavelet sourceWavelet, Wavelet destWavelet, String docId) { Document document = sourceWavelet.getDocument(docId); DocInitialization docInit = document.toInitialization(); // TODO(user): add a createDocument method to Wavelet so that we can push this ugliness // down the stack. ObservableDocument destDoc = destWavelet.getDocument(docId); destDoc.hackConsume(Nindo.fromDocOp(docInit, false /* don't remove skip */)); }
public void testAtomicReplacementOfEquivalentFiresNoEvents() { target.set("42"); DocOp replacement = createReplaceOp(createErasureOp(), createRestoreOp()); target.addListener(listener); doc.hackConsume(Nindo.fromDocOp(replacement, false)); listener.verifyNoEvent(); }
public void testAtomicReplacementOfEquivalentFiresNoEvents() { target.set("42"); DocOp replacement = createReplaceOp(createErasureOp(), createRestoreOp()); target.addListener(listener); doc.hackConsume(Nindo.fromDocOp(replacement, false)); listener.verifyNoEvent(); }
public void testAtomicReplacementFiresSingleEvent() { // Build "insert 42" state. target.set("42"); DocOp restore = createRestoreOp(); // Build "delete 43" state. target.set("43"); DocOp erasure = createErasureOp(); DocOp restoration = createReplaceOp(erasure, restore); target.addListener(listener); doc.hackConsume(Nindo.fromDocOp(restoration, false)); listener.verifyValueChanged(43, 42); }
public void testAtomicReplacementFiresSingleEvent() { // Build "insert 42" state. target.set("42"); DocOp restore = createRestoreOp(); // Build "delete 43" state. target.set("43"); DocOp erasure = createErasureOp(); DocOp restoration = createReplaceOp(erasure, restore); target.addListener(listener); doc.hackConsume(Nindo.fromDocOp(restoration, false)); listener.verifyValueChanged(43, 42); }
public void testLoadOnDomainlessWaveletIdsDoesNotFail() { DocInitialization readOp = BasicFactories.observableDocumentProvider().parse( "<wavelet i=\"conversation/root\"></wavelet>").toInitialization(); DocInitialization archiveOp = BasicFactories.observableDocumentProvider().parse( "<archive i=\"conversation/root\"></archive>").toInitialization(); DocInitialization seenOp = BasicFactories.observableDocumentProvider().parse( "<seen i=\"conversation/root\"></seen>").toInitialization(); FakeWaveView view = BasicFactories.fakeWaveViewBuilder().build(); Wavelet userData = view.createUserData(); userData.getDocument(WaveletBasedSupplement.READSTATE_DOCUMENT).hackConsume( Nindo.fromDocOp(readOp, false)); userData.getDocument(WaveletBasedSupplement.ARCHIVING_DOCUMENT).hackConsume( Nindo.fromDocOp(archiveOp, false)); userData.getDocument(WaveletBasedSupplement.SEEN_DOCUMENT).hackConsume( Nindo.fromDocOp(seenOp, false)); WaveletBasedSupplement.create(userData); }
public void testLoadOnDomainlessWaveletIdsDoesNotFail() { DocInitialization readOp = BasicFactories.observableDocumentProvider().parse( "<wavelet i=\"conversation/root\"></wavelet>").toInitialization(); DocInitialization archiveOp = BasicFactories.observableDocumentProvider().parse( "<archive i=\"conversation/root\"></archive>").toInitialization(); DocInitialization seenOp = BasicFactories.observableDocumentProvider().parse( "<seen i=\"conversation/root\"></seen>").toInitialization(); FakeWaveView view = BasicFactories.fakeWaveViewBuilder().build(); Wavelet userData = view.createUserData(); userData.getDocument(WaveletBasedSupplement.READSTATE_DOCUMENT).hackConsume( Nindo.fromDocOp(readOp, false)); userData.getDocument(WaveletBasedSupplement.ARCHIVING_DOCUMENT).hackConsume( Nindo.fromDocOp(archiveOp, false)); userData.getDocument(WaveletBasedSupplement.SEEN_DOCUMENT).hackConsume( Nindo.fromDocOp(seenOp, false)); WaveletBasedSupplement.create(userData); }