/** * Tests that WaveletBasedConversation does not die if it is loaded on a * manifest document with multiple conversation elements. */ public void testMultipleConversationElementsDoesNotPreventLoad() { manifestDoc.with(new Action() { @Override public <N, E extends N, T extends N> void exec(MutableDocument<N, E, T> doc) { doc.createChildElement(doc.getDocumentElement(), DocumentBasedManifest.MANIFEST_TOP_TAG, Collections.<String, String>emptyMap()); } }); // Manifest now has multiple elements. Re-load conversation view. conversationView = WaveBasedConversationView.create(waveView, idGenerator); }
@Override public WaveletBasedConversation getConversation(String conversationId) { return getConversation(WaveletBasedConversation.widFor(conversationId)); }
public void testManifestAtomicReplacementFiresConversationRemovedThenAdded() { ObservableConversation conv = waveBasedConversationView.createRoot(); ObservableConversationView.Listener listener = mock(ObservableConversationView.Listener.class); waveBasedConversationView.addListener(listener); restore(WaveletBasedConversation.getManifestDocument(waveView.getRoot())); InOrder order = inOrder(listener); order.verify(listener).onConversationRemoved(conv); order.verify(listener).onConversationAdded(waveBasedConversationView.getRoot()); }
/** * Creates a conversation view on an wave view. */ public static WaveBasedConversationView create(ObservableWaveView waveView, IdGenerator idGenerator) { String id = idFor(waveView.getWaveId()); WaveBasedConversationView convView = new WaveBasedConversationView(id, waveView, idGenerator); waveView.addListener(convView); return convView; }
public void testCreateUsesConversationalId() { WaveBasedConversationView target = WaveBasedConversationView.create(waveView, idGenerator); WaveletBasedConversation conv = target.createConversation(); assertFalse(IdUtil.isConversationRootWaveletId(conv.getWavelet().getId())); }
@Override protected void setUp() throws Exception { super.setUp(); FakeWaveView view = BasicFactories.fakeWaveViewBuilder().with(idgen).build(); Wavelet userDataWavelet = view.createUserData(); ObservablePrimitiveSupplement primitiveSupplement = WaveletBasedSupplement.create(userDataWavelet); WaveBasedConversationView conversationView = WaveBasedConversationView.create(view, idgen); WaveletBasedConversation rootConversation = conversationView.createRoot(); supplementedWave = new LiveSupplementedWaveImpl(primitiveSupplement, view, viewer, DefaultFollow.ALWAYS, conversationView); monitor = ThreadReadStateMonitorImpl.create(supplementedWave, conversationView); rootThread = rootConversation.getRootThread(); }
public void testManifestErasureFiresConversationRemoved() { ObservableConversation conv = waveBasedConversationView.createRoot(); ObservableConversationView.Listener listener = mock(ObservableConversationView.Listener.class); waveBasedConversationView.addListener(listener); erase(WaveletBasedConversation.getManifestDocument(waveView.getRoot())); verify(listener).onConversationRemoved(conv); }
@Override public WaveletBasedConversation createRoot() { return view.createRoot(); }
@Override protected WaveletBasedConversation makeConversation() { return conversationView.createConversation(); }
@Override public void addListener(Listener listener) { view.addListener(listener); }
@Override public WaveletBasedConversation getRoot() { return view.getRoot(); }
@Override public WaveletBasedConversation createRoot() { ObservableWavelet rootWavelet = waveView.createRoot(); return createNewConversation(rootWavelet); }
@Override public void onWaveletAdded(ObservableWavelet wavelet) { if (IdUtil.isConversationalId(wavelet.getId())) { createContainer(wavelet); } }
public void testCreateUsesConversationalId() { WaveBasedConversationView target = WaveBasedConversationView.create(waveView, idGenerator); WaveletBasedConversation conv = target.createConversation(); assertFalse(IdUtil.isConversationRootWaveletId(conv.getWavelet().getId())); }
@Override protected void setUp() throws Exception { super.setUp(); FakeWaveView view = BasicFactories.fakeWaveViewBuilder().with(idgen).build(); Wavelet userDataWavelet = view.createUserData(); ObservablePrimitiveSupplement primitiveSupplement = WaveletBasedSupplement.create(userDataWavelet); WaveBasedConversationView conversationView = WaveBasedConversationView.create(view, idgen); WaveletBasedConversation rootConversation = conversationView.createRoot(); supplementedWave = new LiveSupplementedWaveImpl(primitiveSupplement, view, viewer, DefaultFollow.ALWAYS, conversationView); monitor = ThreadReadStateMonitorImpl.create(supplementedWave, conversationView); rootThread = rootConversation.getRootThread(); }
public void testManifestErasureFiresConversationRemoved() { ObservableConversation conv = waveBasedConversationView.createRoot(); ObservableConversationView.Listener listener = mock(ObservableConversationView.Listener.class); waveBasedConversationView.addListener(listener); erase(WaveletBasedConversation.getManifestDocument(waveView.getRoot())); verify(listener).onConversationRemoved(conv); }
public void testCreateRootUsesRootWavelet() { WaveletBasedConversation conv = waveBasedConversationView.createRoot(); assertTrue(IdUtil.isConversationRootWaveletId(conv.getWavelet().getId())); }
@Override public WaveletBasedConversation createConversation() { return view.createConversation(); }
@Override public WaveletBasedConversation createConversation() { ObservableWavelet wavelet; wavelet = waveView.createWavelet(); return createNewConversation(wavelet); }
private WaveBasedConversationView( String id, ObservableWaveView waveView, IdGenerator idGenerator) { this.id = id; this.waveView = waveView; this.idGenerator = idGenerator; for (ObservableWavelet wavelet : waveView.getWavelets()) { if (IdUtil.isConversationalId(wavelet.getId())) { createContainer(wavelet); } } }