@Override protected void setUp() throws Exception { Blips.init(); conversation = makeConversation(); }
public void testFindBlipParent() { ConversationBlip first = conversation.getRootThread().getFirstBlip(); ConversationBlip second = conversation.getRootThread().appendBlip(); ConversationBlip reply = first.addReplyThread().appendBlip(); ConversationBlip secondReply = reply.getThread().appendBlip(); ConversationBlip inlineReply = first.addReplyThread(3).appendBlip(); EventDataConverterV22 converter = new EventDataConverterV22(); assertNull(converter.findBlipParent(first)); assertNull(converter.findBlipParent(second)); assertSame(first, converter.findBlipParent(reply)); assertSame(first, converter.findBlipParent(inlineReply)); assertSame(first, converter.findBlipParent(secondReply)); }
/** * @return A singleton instance of a {@link EventDataConverterManager}. */ @Singleton @Provides static EventDataConverterManager provideEventDataConverterManager() { // v0.1 till v0.21 use the same event data converter. NavigableMap<ProtocolVersion, EventDataConverter> converters = Maps.newTreeMap(); EventDataConverterV21 eventDataConverterV21 = new EventDataConverterV21(); converters.put(ProtocolVersion.V1, eventDataConverterV21); converters.put(ProtocolVersion.V2, eventDataConverterV21); converters.put(ProtocolVersion.V2_1, eventDataConverterV21); converters.put(ProtocolVersion.V2_2, new EventDataConverterV22()); return new EventDataConverterManager(converters); }
public void testFindBlipChildren() { ConversationBlip first = conversation.getRootThread().getFirstBlip(); ConversationBlip second = conversation.getRootThread().appendBlip(); ConversationBlip reply = first.addReplyThread().appendBlip(); ConversationBlip secondReply = reply.getThread().appendBlip(); ConversationBlip inlineReply = first.addReplyThread(3).appendBlip(); EventDataConverterV22 converter = new EventDataConverterV22(); assertEquals(0, converter.findBlipChildren(second).size()); List<ConversationBlip> children = converter.findBlipChildren(first); assertEquals(3, children.size()); assertEquals(inlineReply.getId(), children.get(0).getId()); assertEquals(reply.getId(), children.get(1).getId()); assertEquals(secondReply.getId(), children.get(2).getId()); }
public void testToBlipData() throws Exception { Wavelet wavelet = mock(Wavelet.class); when(wavelet.getWaveId()).thenReturn(WAVE_ID); when(wavelet.getId()).thenReturn(WAVELET_ID); ConversationBlip blip = conversation.getRootThread().getFirstBlip(); String replyThreadId = blip.addReplyThread(3).getId(); EventDataConverterV22 converter = new EventDataConverterV22(); EventMessageBundle eventMessageBundle = new EventMessageBundle(null, null); BlipData blipData = converter.toBlipData(blip, wavelet, eventMessageBundle); assertEquals(blip.getThread().getId(), blipData.getThreadId()); assertEquals(Lists.newArrayList(replyThreadId), blipData.getReplyThreadIds()); Map<String, BlipThread> threads = eventMessageBundle.getThreads(); assertEquals(1, threads.size()); assertEquals(1, threads.get(replyThreadId).getLocation()); }
@Override public BlipData toBlipData(ConversationBlip blip, Wavelet wavelet, EventMessageBundle eventMessageBundle) { BlipData blipData = super.toBlipData(blip, wavelet, eventMessageBundle); String threadId = blip.getThread().getId(); blipData.setThreadId(threadId); // If it's the root thread, that doesn't have thread id, then skip. if (!threadId.isEmpty()) { ConversationThread thread = blip.getThread(); addThread(eventMessageBundle, thread, -1, wavelet); } // Add the inline reply threads. List<String> threadIds = Lists.newLinkedList(); for (LocatedReplyThread<? extends ConversationThread> thread : blip.locateReplyThreads()) { String replyThreadId = thread.getThread().getId(); threadIds.add(replyThreadId); addThread(eventMessageBundle, thread.getThread(), thread.getLocation(), wavelet); } blipData.setReplyThreadIds(threadIds); return blipData; }
public void testFindBlipParent() { ConversationBlip first = conversation.getRootThread().getFirstBlip(); ConversationBlip second = conversation.getRootThread().appendBlip(); ConversationBlip reply = first.addReplyThread().appendBlip(); ConversationBlip secondReply = reply.getThread().appendBlip(); ConversationBlip inlineReply = first.addReplyThread(3).appendBlip(); EventDataConverterV22 converter = new EventDataConverterV22(); assertNull(converter.findBlipParent(first)); assertNull(converter.findBlipParent(second)); assertSame(first, converter.findBlipParent(reply)); assertSame(first, converter.findBlipParent(inlineReply)); assertSame(first, converter.findBlipParent(secondReply)); }
public void testFindBlipChildren() { ConversationBlip first = conversation.getRootThread().getFirstBlip(); ConversationBlip second = conversation.getRootThread().appendBlip(); ConversationBlip reply = first.addReplyThread().appendBlip(); ConversationBlip secondReply = reply.getThread().appendBlip(); ConversationBlip inlineReply = first.addReplyThread(3).appendBlip(); EventDataConverterV22 converter = new EventDataConverterV22(); assertEquals(0, converter.findBlipChildren(second).size()); List<ConversationBlip> children = converter.findBlipChildren(first); assertEquals(3, children.size()); assertEquals(inlineReply.getId(), children.get(0).getId()); assertEquals(reply.getId(), children.get(1).getId()); assertEquals(secondReply.getId(), children.get(2).getId()); }
public void testToBlipData() throws Exception { Wavelet wavelet = mock(Wavelet.class); when(wavelet.getWaveId()).thenReturn(WAVE_ID); when(wavelet.getId()).thenReturn(WAVELET_ID); ConversationBlip blip = conversation.getRootThread().getFirstBlip(); String replyThreadId = blip.addReplyThread(3).getId(); EventDataConverterV22 converter = new EventDataConverterV22(); EventMessageBundle eventMessageBundle = new EventMessageBundle(null, null); BlipData blipData = converter.toBlipData(blip, wavelet, eventMessageBundle); assertEquals(blip.getThread().getId(), blipData.getThreadId()); assertEquals(Lists.newArrayList(replyThreadId), blipData.getReplyThreadIds()); Map<String, BlipThread> threads = eventMessageBundle.getThreads(); assertEquals(1, threads.size()); assertEquals(1, threads.get(replyThreadId).getLocation()); }
/** * Constructs a new {@link OperationServiceHelper} with a wavelet with the * name and participant that are passed in. * * @param waveletName the name of the empty wavelet to open in the context. * @param participant the participant that should be on that empty wavelet. */ public OperationServiceHelper(WaveletName waveletName, ParticipantId participant) { waveletProvider = mock(WaveletProvider.class); EventDataConverter converter = new EventDataConverterV22(); ObservableWaveletData waveletData = WaveletDataImpl.Factory.create(DOCUMENT_FACTORY).create( new EmptyWaveletSnapshot(waveletName.waveId, waveletName.waveletId, participant, HASH_FACTORY.createVersionZero(waveletName), 0L)); waveletData.addParticipant(participant); BasicWaveletOperationContextFactory CONTEXT_FACTORY = new BasicWaveletOperationContextFactory(participant); SilentOperationSink<WaveletOperation> executor = SilentOperationSink.Executor.<WaveletOperation, WaveletData>build(waveletData); OpBasedWavelet wavelet = new OpBasedWavelet(waveletData.getWaveId(), waveletData, CONTEXT_FACTORY, ParticipationHelper.DEFAULT, executor, SilentOperationSink.VOID); // Make a conversation with an empty root blip WaveletBasedConversation.makeWaveletConversational(wavelet); ConversationUtil conversationUtil = new ConversationUtil(FakeIdGenerator.create()); ObservableConversation conversation = conversationUtil.buildConversation(wavelet).getRoot(); conversation.getRootThread().appendBlip(); context = new OperationContextImpl(waveletProvider, converter, conversationUtil); context.putWavelet(waveletName.waveId, waveletName.waveletId, new RobotWaveletData(waveletData, HASH_FACTORY.createVersionZero(waveletName))); }
@Override protected void setUp() throws Exception { Blips.init(); conversation = makeConversation(); }