public void testCannotCreateTooManyChannels() { ViewChannelImpl.setMaxViewChannelsPerWave(4); WaveId waveId = WaveId.of("example.com", "toomanywaveid"); for (int i = 0; i < 4; i++) { channel = new ViewChannelImpl(waveId, waveViewService, logger); } try { channel = new ViewChannelImpl(waveId, waveViewService, logger); fail("Should not be allowed to create any more view channels"); } catch (IllegalStateException ex) { // expected } }
public void testClosingOneChannelMakesRoomForAnother() { WaveId waveId = WaveId.of("example.com", "makeroomwaveid"); ViewChannelImpl.setMaxViewChannelsPerWave(4); for (int i = 0; i < 4; i++) { channel = new ViewChannelImpl(waveId, waveViewService, logger); } channel.close(); // Close the last channel, making room for another. channel = new ViewChannelImpl(waveId, waveViewService, logger); } }
public void testFailureBeforeOpenThrowsException() { try { channel.onFailure("for testing"); fail("Should not be able to receive onFailure without open call"); } catch (IllegalStateException expected) { // Expected. } }
@Override protected void setUp() { ViewChannelImpl.setMaxViewChannelsPerWave(Integer.MAX_VALUE); waveViewService = new MockWaveViewService(); viewFactory = ViewChannelImpl.factory(waveViewService, logger); fakeUnsavedDataListener = new FakeUnsavedDataListener(); mux = new OperationChannelMultiplexerImpl(WAVE_ID, viewFactory, DATA_FACTORY, LOGGERS, new UnsavedDataListenerFactory() { public UnsavedDataListener create(WaveletId dummy) { return fakeUnsavedDataListener; } public void destroy(WaveletId waveletId) { } }, new ImmediateExcecutionScheduler(), FakeHashedVersionFactory.INSTANCE, null); muxListener = new MockMuxListener(); }
/** * Test that when everything is ok, we can connect, submit, create wavelet and disconnect. * This is not supposed to be a thorough test. */ public void testSunnyDayScenario() { open(); viewOpenListener.expectedCall(MockViewChannelListener.MethodCall.ON_CONNECTED); viewOpenListener.expectedCall(MockViewChannelListener.MethodCall.ON_OPEN_FINISHED); // pretend an update with update wavelet. Note we don't add any data in the wavelet // because it's not really relevant for the test. respondWithEmptyUpdate(WAVELET_ID); viewOpenListener.expectedCall(MockViewChannelListener.MethodCall.ON_UPDATE, WAVELET_ID); // Submit a delta and check that we have the right channel id remembered. MockSubmitListener submitListener = new MockSubmitListener(); channel.submitDelta(WAVELET_ID, emptyDelta(), submitListener); assertEquals(1, waveViewService.submits.size()); assertEquals(CHANNEL_ID, waveViewService.lastSubmit().channelId); // Return a success message on the submitted delta byte[] hash = new byte[] {1, 2, 3, 4}; respondToSubmit(HashedVersion.of(2, hash), 1, null, ResponseCode.OK); submitListener.expectedCall(MockSubmitListener.MethodCall.ON_SUCCESS, 1, HashedVersion.of(2, hash)); // Check disconnect channel.close(); assertEquals(1, waveViewService.closes.size()); waveViewService.lastClose().callback.onSuccess(); }
public void testSubmitDeltaOnClosedChannelThrowsIllegalStateException() { open(); close(); // submit a delta should fail try { channel.submitDelta(WAVELET_ID, emptyDelta(), new MockSubmitListener()); fail("Should not be able to submit on a closed channel"); } catch (IllegalStateException ex) { // expect exception } }
@Override public ViewChannel create(WaveId viewWaveId) { return new ViewChannelImpl(viewWaveId, waveService, logger); } };
public void testSuccessBeforeOpenThrowsException() { try { channel.onSuccess("for testing"); fail("Should not be able to receive onSuccess without open call"); } catch (IllegalStateException expected) { // Expected. } }
/** * Opens the channel from the client side only. */ private void halfOpen() { Map<WaveletId, List<HashedVersion>> knownWavelets = Collections.emptyMap(); channel.open(viewOpenListener, IdFilters.ALL_IDS, knownWavelets); }
/** * Tests that a channel fails if it receives a message before it is opened. */ public void testMessageBeforeOpenThrowsException() { try { channel.onUpdate(new FakeWaveViewServiceUpdate()); fail("Should not be able to receive update without open call"); } catch (IllegalStateException expected) { // Expected. } }
private void close() { channel.close(); }
@Override public void setUp() { ViewChannelImpl.setMaxViewChannelsPerWave(Integer.MAX_VALUE); viewFactory = new MockViewChannel.Factory(); UnsavedDataListenerFactory fakeListenerFactory = new UnsavedDataListenerFactory() { @Override public UnsavedDataListener create(WaveletId waveletId) { return null; } @Override public void destroy(WaveletId waveletId) { } }; mux = new OperationChannelMultiplexerImpl(WAVE_ID, viewFactory, DATA_FACTORY, LOGGERS, fakeListenerFactory, new ImmediateExcecutionScheduler(), FakeHashedVersionFactory.INSTANCE, null); muxListener = new MockMuxListener(); }
new OperationChannelMultiplexerImpl.LoggerContext(logger, logger, logger, logger); OperationChannelMultiplexerImpl mux = new OperationChannelMultiplexerImpl(WAVE_ID, ViewChannelImpl.factory(waveViewService, logger), WaveletDataImpl.Factory.create(docFactory), loggers, null, new ImmediateExcecutionScheduler(), FakeHashedVersionFactory.INSTANCE, null);
@Override protected void setUp() { ViewChannelImpl.setMaxViewChannelsPerWave(Integer.MAX_VALUE); waveViewService = new MockWaveViewService(); viewFactory = ViewChannelImpl.factory(waveViewService, logger); fakeUnsavedDataListener = new FakeUnsavedDataListener(); mux = new OperationChannelMultiplexerImpl(WAVE_ID, viewFactory, DATA_FACTORY, LOGGERS, new UnsavedDataListenerFactory() { public UnsavedDataListener create(WaveletId dummy) { return fakeUnsavedDataListener; } public void destroy(WaveletId waveletId) { } }, new ImmediateExcecutionScheduler(), FakeHashedVersionFactory.INSTANCE); muxListener = new MockMuxListener(); }
/** * Test that when everything is ok, we can connect, submit, create wavelet and disconnect. * This is not supposed to be a thorough test. */ public void testSunnyDayScenario() { open(); viewOpenListener.expectedCall(MockViewChannelListener.MethodCall.ON_CONNECTED); viewOpenListener.expectedCall(MockViewChannelListener.MethodCall.ON_OPEN_FINISHED); // pretend an update with update wavelet. Note we don't add any data in the wavelet // because it's not really relevant for the test. respondWithEmptyUpdate(WAVELET_ID); viewOpenListener.expectedCall(MockViewChannelListener.MethodCall.ON_UPDATE, WAVELET_ID); // Submit a delta and check that we have the right channel id remembered. MockSubmitListener submitListener = new MockSubmitListener(); channel.submitDelta(WAVELET_ID, emptyDelta(), submitListener); assertEquals(1, waveViewService.submits.size()); assertEquals(CHANNEL_ID, waveViewService.lastSubmit().channelId); // Return a success message on the submitted delta byte[] hash = new byte[] {1, 2, 3, 4}; respondToSubmit(HashedVersion.of(2, hash), 1, null, ResponseCode.OK); submitListener.expectedCall(MockSubmitListener.MethodCall.ON_SUCCESS, 1, HashedVersion.of(2, hash)); // Check disconnect channel.close(); assertEquals(1, waveViewService.closes.size()); waveViewService.lastClose().callback.onSuccess(); }
/** * Tests that a failure of a ViewSubmit rpc causes the channel to call the * failure callback registered on delta submission. */ public void testDeltaSubmissionFailureCallsSubmissionFailureCallback() { open(); // Submit a delta. MockSubmitListener listener = new MockSubmitListener(); channel.submitDelta(WAVELET_ID, emptyDelta(), listener); // Fail the submit delta, and expect that the submit listened got the error. respondToSubmitWithFailure(); listener.expectedCall(MockSubmitListener.MethodCall.ON_FAILURE, "WAVE_SERVER_ERROR"); }
public void testSuccessBeforeOpenThrowsException() { try { channel.onSuccess("for testing"); fail("Should not be able to receive onSuccess without open call"); } catch (IllegalStateException expected) { // Expected. } }
/** * Opens the channel from the client side only. */ private void halfOpen() { Map<WaveletId, List<HashedVersion>> knownWavelets = Collections.emptyMap(); channel.open(viewOpenListener, IdFilters.ALL_IDS, knownWavelets); }
/** * Tests that a channel fails if it receives a message before it is opened. */ public void testMessageBeforeOpenThrowsException() { try { channel.onUpdate(new FakeWaveViewServiceUpdate()); fail("Should not be able to receive update without open call"); } catch (IllegalStateException expected) { // Expected. } }
private void close() { channel.close(); }