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 testRemovedParticipantNoLongerRetrieved() { ParticipantId creator = target.getParticipantIds().iterator().next(); ParticipantId fake = new ParticipantId("bill@foo.com"); target.addParticipant(fake); target.removeParticipant(fake); assertEquals(Collections.singletonList(creator), CollectionUtils.newArrayList(target.getParticipantIds())); }
private ObservableConversationBlip getBlip(WaveletId wid, String bid) { String conversationId = WaveletBasedConversation.idFor(wid); ObservableConversation c = conversationView.getConversation(conversationId); return c != null ? c.getBlip(bid) : null; }
public void testClearAnchor() { populate(alternate); ConversationBlip blip = getFirstBlip(alternate); Anchor anchor = alternate.createAnchor(blip); target.setAnchor(anchor); target.setAnchor(null); assertFalse(target.hasAnchor()); }
public void testSetAnchor() { populate(alternate); ConversationBlip blip = getFirstBlip(alternate); Anchor anchor = alternate.createAnchor(blip); target.setAnchor(anchor); assertTrue(target.hasAnchor()); assertEquals(anchor, target.getAnchor()); }
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 testSetAnchorEventsAreFired() { populate(alternate); ObservableConversation.AnchorListener listener = mock(ObservableConversation.AnchorListener.class); target.addListener(listener); Anchor anchor1 = alternate.createAnchor(getFirstBlip(alternate)); // Set anchor from null. target.setAnchor(anchor1); verify(listener).onAnchorChanged(null, anchor1); // Change anchor to different blip. Anchor anchor11 = alternate.createAnchor(alternate.getRootThread().getFirstBlip() .getReplyThreads().iterator().next().getFirstBlip()); target.setAnchor(anchor11); verify(listener).onAnchorChanged(anchor1, anchor11); // Change anchor to different wavelet. ObservableConversation alternate2 = makeConversation(); populate(alternate2); Anchor anchor2 = alternate2.createAnchor(getFirstBlip(alternate2)); target.setAnchor(anchor2); verify(listener).onAnchorChanged(anchor11, anchor2); // Set anchor to null. target.setAnchor(null); verify(listener).onAnchorChanged(anchor2, null); // Remove listener. target.removeListener(listener); target.setAnchor(anchor1); verifyNoMoreInteractions(listener); }
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 testRemovedListenersReceiveNoEvents() { ObservableConversation mirror = mirrorConversation(target); ObservableConversationBlip b1 = target.getRootThread().appendBlip(); ObservableConversationThread t1 = b1.addReplyThread(); ObservableConversationBlip b2 = t1.appendBlip(); ObservableConversationBlip b1mirror = mirror.getRootThread().getFirstBlip(); ObservableConversationThread t1mirror = b1mirror.getReplyThreads().iterator().next(); t1mirror.getFirstBlip(); mirror.addListener(convListener); mirror.removeListener(convListener); b1.delete(); verifyNoMoreInteractions(convListener); }
public void testParticipantChangesFireEvents() { ParticipantId p1 = new ParticipantId("someone@example.com"); ParticipantId p2 = new ParticipantId("else@example.com"); ObservableConversation mirror = mirrorConversation(target); mirror.addListener(convListener); target.addParticipant(p1); target.addParticipant(p2); verify(convListener).onParticipantAdded(p1); verify(convListener).onParticipantAdded(p2); target.addParticipant(p1); verifyNoMoreInteractions(convListener); target.removeParticipant(p2); verify(convListener).onParticipantRemoved(p2); }
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 testAddedParticipantIsRetreived() { ParticipantId creator = target.getParticipantIds().iterator().next(); ParticipantId fake = new ParticipantId("bill@foo.com"); target.addParticipant(fake); assertEquals(Arrays.asList(creator, fake), CollectionUtils.newArrayList(target.getParticipantIds())); }
public void testAddParticipant() throws Exception { OperationContextImpl context = helper.getContext(); ObservableConversation conversation = context.openConversation(WAVE_ID, WAVELET_ID, ROBOT).getRoot(); String rootBlipId = ConversationUtil.getRootBlipId(conversation); // Confirm alex is not on wave prior to operation. Set<ParticipantId> participants = conversation.getParticipantIds(); assertFalse("Alex should not be a participant on wavelet prior to operation to add him.", participants.contains(ALEX)); OperationRequest operation = operationRequest(OperationType.WAVELET_ADD_PARTICIPANT_NEWSYNTAX, rootBlipId, Parameter.of(ParamsProperty.PARTICIPANT_ID,ALEX.getAddress())); service.execute(operation, context, ROBOT); JsonRpcResponse response = context.getResponse(OPERATION_ID); assertFalse("Add Participant generated error in service execution.", response.isError()); // Verify Alex is now a participant on the wave. participants = conversation.getParticipantIds(); assertTrue("Alex should now be a participant on the wavelet.", participants.contains(ALEX)); }
public void testCannotGetBlipAsDataDocument() { ConversationBlip blip = target.getRootThread().appendBlip(); try { target.getDataDocument(blip.getId()); fail("Expected an exception fetching a blip document as a data doc"); } catch (IllegalArgumentException expected) { } }
conversation.addListener(conversationListener); EventGeneratingWaveletListener waveletListener = new EventGeneratingWaveletListener(capabilities); throw new IllegalStateException("Operation failed to apply when generating events", e); } finally { conversation.removeListener(conversationListener); wavelet.removeListener(waveletListener); for (EventGeneratingDocumentHandler docHandler : docHandlers.values()) {
public void testDeletedConversationIsUnusable() { target.delete(); assertConversationAccessible(target); assertConversationUnusable(target); }
public void testCreateAnchor() { populate(alternate); ConversationBlip blip = getFirstBlip(alternate); Anchor anchor = alternate.createAnchor(blip); assertTrue(alternate == anchor.getConversation()); assertTrue(blip == anchor.getBlip()); }
public void testSetAnchor() { populate(alternate); ConversationBlip blip = getFirstBlip(alternate); Anchor anchor = alternate.createAnchor(blip); target.setAnchor(anchor); assertTrue(target.hasAnchor()); assertEquals(anchor, target.getAnchor()); }
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 testSetAnchorEventsAreFired() { populate(alternate); ObservableConversation.AnchorListener listener = mock(ObservableConversation.AnchorListener.class); target.addListener(listener); Anchor anchor1 = alternate.createAnchor(getFirstBlip(alternate)); // Set anchor from null. target.setAnchor(anchor1); verify(listener).onAnchorChanged(null, anchor1); // Change anchor to different blip. Anchor anchor11 = alternate.createAnchor(alternate.getRootThread().getFirstBlip() .getReplyThreads().iterator().next().getFirstBlip()); target.setAnchor(anchor11); verify(listener).onAnchorChanged(anchor1, anchor11); // Change anchor to different wavelet. ObservableConversation alternate2 = makeConversation(); populate(alternate2); Anchor anchor2 = alternate2.createAnchor(getFirstBlip(alternate2)); target.setAnchor(anchor2); verify(listener).onAnchorChanged(anchor11, anchor2); // Set anchor to null. target.setAnchor(null); verify(listener).onAnchorChanged(anchor2, null); // Remove listener. target.removeListener(listener); target.setAnchor(anchor1); verifyNoMoreInteractions(listener); }