public void testDeleteBlipInThreadLeavesSiblings() { ConversationBlip b1 = target.getRootThread().appendBlip(); ConversationBlip b2 = target.getRootThread().appendBlip(); ConversationBlip b3 = target.getRootThread().appendBlip(); b2.delete(); assertEquals(Arrays.asList(b1, b3), getBlipList(target.getRootThread())); b1.delete(); assertEquals(Arrays.asList(b3), getBlipList(target.getRootThread())); }
public void testThreadAppendInsertBlipFiresEvent() { ObservableConversation mirror = mirrorConversation(target); mirror.addListener(convListener); ObservableConversationBlip b1 = target.getRootThread().appendBlip(); ObservableConversationBlip b1mirror = mirror.getRootThread().getFirstBlip(); verify(convListener).onBlipAdded(b1mirror); target.getRootThread().insertBlip(b1); ObservableConversationBlip b2mirror = mirror.getRootThread().getFirstBlip(); verify(convListener).onBlipAdded(b2mirror); allowBlipTimestampChanged(convListener); verifyNoMoreInteractions(convListener); }
public void testRootThreadRemovalDoesntFireEvent() { ObservableConversation mirror = mirrorConversation(target); target.getRootThread().appendBlip(); ObservableConversationBlip b1mirror = mirror.getRootThread().getFirstBlip(); mirror.addListener(convListener); // Trigger thread deletion. target.getRootThread().delete(); verify(convListener).onBlipDeleted(b1mirror); allowBlipTimestampChanged(convListener); verifyNoMoreInteractions(convListener); }
public void testRootThreadRemovalDoesntFireEvent() { ObservableConversation mirror = mirrorConversation(target); target.getRootThread().appendBlip(); ObservableConversationBlip b1mirror = mirror.getRootThread().getFirstBlip(); mirror.addListener(convListener); // Trigger thread deletion. target.getRootThread().delete(); verify(convListener).onBlipDeleted(b1mirror); allowBlipTimestampChanged(convListener); verifyNoMoreInteractions(convListener); }
public void testBlipAppendReplyFiresEvent() { ObservableConversation mirror = mirrorConversation(target); ObservableConversationBlip b1 = target.getRootThread().appendBlip(); ObservableConversationBlip b1mirror = mirror.getRootThread().getFirstBlip(); mirror.addListener(convListener); b1.addReplyThread(); ObservableConversationThread t1mirror = b1mirror.getReplyThreads().iterator().next(); verify(convListener).onThreadAdded(t1mirror); verifyNoMoreInteractions(convListener); }
public void testDeleteConversationInvalidatesBlips() { target.getRootThread(); ObservableConversationBlip blip1 = target.getRootThread().appendBlip(); ObservableConversationBlip blip2 = target.getRootThread().appendBlip(); target.addListener(convListener); target.delete(); assertConversationUnusable(target); assertBlipInvalid(blip1); assertBlipInvalid(blip2); verify(convListener).onBlipDeleted(blip1); verify(convListener).onBlipDeleted(blip2); }
public void testDeleteSingleRootThreadBlipRemovesIt() { ConversationBlip blip = target.getRootThread().appendBlip(); blip.delete(); assertNull(target.getRootThread().getFirstBlip()); assertBlipInvalid(blip); }
public void testLiveRenderingCommutesOnBlipAppend() { ConversationThread root = wave.getRoot().getRootThread(); root.appendBlip(); assertEquals(render().toString(), rendering.toString()); }
public void testLiveRenderingCommutesOnBlipInsert() { ConversationThread root = wave.getRoot().getRootThread(); root.insertBlip(Iterables.get(root.getBlips(), 1)); assertEquals(render().toString(), rendering.toString()); }
public void testBlipRemovalFiresEvent() { ObservableConversation mirror = mirrorConversation(target); ObservableConversationBlip b1 = target.getRootThread().appendBlip(); ObservableConversationBlip b1mirror = mirror.getRootThread().getFirstBlip(); mirror.addListener(convListener); b1.delete(); verify(convListener).onBlipDeleted(b1mirror); allowBlipTimestampChanged(convListener); verifyNoMoreInteractions(convListener); }
public void testDeleteBlipWithInlineReplyDeletesReply() { ConversationBlip blip = target.getRootThread().appendBlip(); MutableDocument<?, ?, ?> doc = blip.getContent(); ConversationThread reply = blip.addReplyThread(locateAfterLineElement(doc)); ConversationBlip replyBlip = reply.appendBlip(); blip.delete(); assertNull(target.getRootThread().getFirstBlip()); assertThreadInvalid(reply); assertBlipInvalid(replyBlip); }
public void testDeleteSingleNonRootThreadBlipRemovesIt() { ConversationThread thread = target.getRootThread().appendBlip().addReplyThread(); ConversationBlip unDeleted = thread.appendBlip(); ConversationBlip blip = thread.appendBlip(); blip.delete(); assertEquals(Arrays.asList(unDeleted), getBlipList(thread)); assertBlipInvalid(blip); }
public void testDeleteNonRootThreadRemovesAllBlipsAndThread() { ConversationBlip blip = target.getRootThread().appendBlip(); ConversationThread replyThread = blip.addReplyThread(); ConversationBlip replyBlip1 = replyThread.appendBlip(); ConversationBlip replyBlip2 = replyThread.appendBlip(); replyThread.delete(); assertFalse(blip.getReplyThreads().iterator().hasNext()); assertThreadChildrenConsistent(blip); assertBlipInvalid(replyBlip1); assertBlipInvalid(replyBlip2); assertThreadInvalid(replyThread); }
public void testGenerateWaveletBlipRemovedEvent() throws Exception { ObservableConversationThread rootThread = conversationUtil.buildConversation(wavelet).getRoot().getRootThread(); ObservableConversationBlip newBlip = rootThread.appendBlip(); newBlip.delete(); EventMessageBundle messages = generateAndCheckEvents(EventType.WAVELET_BLIP_REMOVED); assertEquals("Expected two events", 2, messages.getEvents().size()); // Blip removed should be the second event. WaveletBlipRemovedEvent event = WaveletBlipRemovedEvent.as(messages.getEvents().get(1)); assertEquals("Expected the same id as the removed blip", newBlip.getId(), event.getRemovedBlipId()); }
public void testGenerateAnnotatedTextChangedEvent() throws Exception { ConversationBlip rootBlip = conversationUtil.buildConversation(wavelet).getRoot().getRootThread().getFirstBlip(); String annotationKey = "key"; String annotationValue = "value"; rootBlip.getContent().setAnnotation(0, 1, annotationKey, annotationValue); EventMessageBundle messages = generateAndCheckEvents(EventType.ANNOTATED_TEXT_CHANGED); assertEquals("Expected one event only", 1, messages.getEvents().size()); AnnotatedTextChangedEvent event = AnnotatedTextChangedEvent.as(messages.getEvents().get(0)); assertEquals("Expected the key of the annotation", annotationKey, event.getName()); assertEquals("Expected the value of the annotation", annotationValue, event.getValue()); }
public void testGenerateAnnotatedTextChangedEvent() throws Exception { ConversationBlip rootBlip = conversationUtil.buildConversation(wavelet).getRoot().getRootThread().getFirstBlip(); String annotationKey = "key"; String annotationValue = "value"; rootBlip.getContent().setAnnotation(0, 1, annotationKey, annotationValue); EventMessageBundle messages = generateAndCheckEvents(EventType.ANNOTATED_TEXT_CHANGED); assertEquals("Expected one event only", 1, messages.getEvents().size()); AnnotatedTextChangedEvent event = AnnotatedTextChangedEvent.as(messages.getEvents().get(0)); assertEquals("Expected the key of the annotation", annotationKey, event.getName()); assertEquals("Expected the value of the annotation", annotationValue, event.getValue()); }
public void testGenerateDocumentChangedEventOnlyOnce() throws Exception { ConversationBlip rootBlip = conversationUtil.buildConversation(wavelet).getRoot().getRootThread().getFirstBlip(); // Change the document twice XmlStringBuilder builder = XmlStringBuilder.createText("some random content"); LineContainers.appendToLastLine(rootBlip.getContent(), builder); LineContainers.appendToLastLine(rootBlip.getContent(), builder); EventMessageBundle messages = generateAndCheckEvents(EventType.DOCUMENT_CHANGED); assertEquals("Expected one event only", 1, messages.getEvents().size()); }
public void testInsetBlipBeforeFirstBlipCreatesNewFirstBlip() { ConversationThread thread = target.getRootThread(); ConversationBlip oldFirst = thread.appendBlip(); ConversationBlip newFirst = thread.insertBlip(oldFirst); assertSame(thread.getFirstBlip(), newFirst); assertSame(newFirst, target.getBlip(newFirst.getId())); assertSame(oldFirst, target.getBlip(oldFirst.getId())); assertEquals(Arrays.asList(newFirst, oldFirst), getBlipList(thread)); }
public void testDeleteRootThreadRemovesAllBlips() { ConversationThread rootThread = target.getRootThread(); ConversationBlip first = rootThread.appendBlip(); ConversationBlip second = rootThread.appendBlip(); rootThread.delete(); assertBlipInvalid(first); assertBlipInvalid(second); assertEquals(CollectionUtils.newArrayList(), getBlipList(rootThread)); assertThreadValid(rootThread); }
public void testDeleteInlineReplyDeletesAnchor() { ConversationBlip blip = target.getRootThread().appendBlip(); XmlStringBuilder xmlBefore = XmlStringBuilder.innerXml(blip.getContent()); ConversationThread inlineReply = blip.addReplyThread(locateAfterLineElement( blip.getContent())); ConversationBlip inlineReplyBlip = inlineReply.appendBlip(); inlineReplyBlip.delete(); assertBlipInvalid(inlineReplyBlip); assertThreadInvalid(inlineReply); assertStructureEquivalent(xmlBefore, blip.getContent()); }