Author: yurize
Date: Tue Mar 13 19:58:32 2012
New Revision: 1300318
URL: http://svn.apache.org/viewvc?rev=1300318&view=rev
Log:
Fixes failing test - PerUserWaveViewSubscriberTest
https://reviews.apache.org/r/4244/
Modified:
incubator/wave/trunk/test/org/waveprotocol/box/server/waveserver/PerUserWaveViewSubscriberTest.java
Modified:
incubator/wave/trunk/test/org/waveprotocol/box/server/waveserver/PerUserWaveViewSubscriberTest.java
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/test/org/waveprotocol/box/server/waveserver/PerUserWaveViewSubscriberTest.java?rev=1300318&r1=1300317&r2=1300318&view=diff
==============================================================================
---
incubator/wave/trunk/test/org/waveprotocol/box/server/waveserver/PerUserWaveViewSubscriberTest.java
(original)
+++
incubator/wave/trunk/test/org/waveprotocol/box/server/waveserver/PerUserWaveViewSubscriberTest.java
Tue Mar 13 19:58:32 2012
@@ -20,16 +20,16 @@ package org.waveprotocol.box.server.wave
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Multimap;
+import com.google.common.util.concurrent.SettableFuture;
+import com.google.gwt.thirdparty.guava.common.collect.Maps;
import junit.framework.TestCase;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.waveprotocol.box.common.DeltaSequence;
-import org.waveprotocol.box.common.ExceptionalIterator;
import org.waveprotocol.box.server.common.CoreWaveletOperationSerializer;
import org.waveprotocol.box.server.util.WaveletDataUtil;
import org.waveprotocol.box.server.util.testing.TestingConstants;
@@ -40,7 +40,8 @@ import org.waveprotocol.wave.model.id.Wa
import org.waveprotocol.wave.model.version.HashedVersion;
import org.waveprotocol.wave.model.wave.data.WaveletData;
-import java.util.Iterator;
+import java.util.Collection;
+import java.util.Map;
/**
* @author [email protected] (Yuri Zelikov)
@@ -53,7 +54,7 @@ public class PerUserWaveViewSubscriberTe
private static final ProtocolWaveletDelta DELTA =
ProtocolWaveletDelta.newBuilder()
.setAuthor(USER)
.setHashedVersion(CoreWaveletOperationSerializer.serialize(BEGIN_VERSION))
-
.addOperation(ProtocolWaveletOperation.newBuilder().setNoOp(true).build()).build();
+
.addOperation(ProtocolWaveletOperation.newBuilder().setAddParticipant(USER).build()).build();
private static final DeltaSequence POJO_DELTAS =
DeltaSequence.of(CoreWaveletOperationSerializer.deserialize(DELTA,
END_VERSION, 0L));
@@ -69,9 +70,19 @@ public class PerUserWaveViewSubscriberTe
}
public void testGetPerUserWaveView() throws WaveletStateException {
- Iterator<WaveId> inner = ImmutableList.of(WAVELET_NAME.waveId).iterator();
- ExceptionalIterator<WaveId, WaveServerException> iter=
ExceptionalIterator.FromIterator.create(inner);
- when(waveMap.getWaveIds()).thenReturn(iter);
+ LocalWaveletContainer.Factory localFactory =
mock(LocalWaveletContainer.Factory.class);
+
+ WaveletNotificationSubscriber notifiee =
mock(WaveletNotificationSubscriber.class);
+
+ SettableFuture<ImmutableSet<WaveletId>> lookedupWavelets =
SettableFuture.create();
+ lookedupWavelets.set(ImmutableSet.of(WAVELET_NAME.waveletId));
+
+ Wave wave =
+ new Wave(WAVELET_NAME.waveId, lookedupWavelets, notifiee,
localFactory, null,
+ WAVELET_NAME.waveId.getDomain());
+ Map<WaveId, Wave> waves = Maps.newHashMap();
+ waves.put(WAVELET_NAME.waveId, wave);
+ when(waveMap.getWaves()).thenReturn(waves);
ImmutableSet<WaveletId> wavelets = ImmutableSet.of(WAVELET_NAME.waveletId);
when(waveMap.lookupWavelets(WAVELET_NAME.waveId)).thenReturn(wavelets);
@@ -82,10 +93,20 @@ public class PerUserWaveViewSubscriberTe
long dummyCreationTime = System.currentTimeMillis();
WaveletData wavelet = WaveletDataUtil.createEmptyWavelet(WAVELET_NAME,
PARTICIPANT,
BEGIN_VERSION, dummyCreationTime);
- perUserWaveViewSubscriber.waveletUpdate(wavelet, POJO_DELTAS);
- Multimap<WaveId, WaveletId> perUserWavesView =
perUserWaveViewSubscriber.getPerUserWaveView(PARTICIPANT);
- assertNotNull(perUserWavesView);
+ // The first getPerUserWaveView causes the user's wavelets to be tracked.
+ Multimap<WaveId, WaveletId> perUserWavesView =
+ perUserWaveViewSubscriber.getPerUserWaveView(PARTICIPANT);
+ assertEquals(0, perUserWavesView.size());
+
+ // Mock adding the user to a new wavelet.
+ perUserWaveViewSubscriber.waveletUpdate(wavelet, POJO_DELTAS);
+ perUserWavesView =
+ perUserWaveViewSubscriber.getPerUserWaveView(PARTICIPANT);
+ // Verify the user was actually added.
assertEquals(1, perUserWavesView.size());
+ Collection<WaveletId> waveletsPerUser =
perUserWavesView.get(WAVELET_NAME.waveId);
+ assertNotNull(waveletsPerUser);
+ assertEquals(WAVELET_NAME.waveletId, waveletsPerUser.iterator().next());
}
}