verify(deadListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); verify(slowSuccessListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); verify(successListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); verify(nullListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf());
verify(deadListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); verify(slowSuccessListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); verify(successListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); verify(nullListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf());
/** * Test prefetchDeltaSignerInfo for failing requests -- even though the first request fails, * the second request on a different domain should succeed. */ public void test_prefetchDeltaSignerInfo6() throws Exception { // This will fail later SignerInfoPrefetchResultListener failListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSlowFailingProvider(ticker, EASY_TICKS), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), getHashedVersion(), failListener); verifyZeroInteractions(failListener); // This will succeed later, after the failing one fails SignerInfoPrefetchResultListener successListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSlowSuccessfulProvider(ticker, EASY_TICKS * 2), getRealSignerId(), getFakeWaveletName(OTHER_DOMAIN), getHashedVersion(), successListener); verifyZeroInteractions(successListener); // The failing request should fail, but successful request left alone ticker.tick(EASY_TICKS); verifyZeroInteractions(successListener); verify(failListener).onFailure(GENERIC_ERROR); // The successful request should now succeed ticker.tick(EASY_TICKS); verify(successListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); verifyNoMoreInteractions(failListener); }
/** * Test prefetchDeltaSignerInfo for failing requests -- even though the first request fails, * the second request on a different domain should succeed. */ public void test_prefetchDeltaSignerInfo6() throws Exception { // This will fail later SignerInfoPrefetchResultListener failListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSlowFailingProvider(ticker, EASY_TICKS), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), getHashedVersion(), failListener); verifyZeroInteractions(failListener); // This will succeed later, after the failing one fails SignerInfoPrefetchResultListener successListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSlowSuccessfulProvider(ticker, EASY_TICKS * 2), getRealSignerId(), getFakeWaveletName(OTHER_DOMAIN), getHashedVersion(), successListener); verifyZeroInteractions(successListener); // The failing request should fail, but successful request left alone ticker.tick(EASY_TICKS); verifyZeroInteractions(successListener); verify(failListener).onFailure(GENERIC_ERROR); // The successful request should now succeed ticker.tick(EASY_TICKS); verify(successListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); verifyNoMoreInteractions(failListener); }
/** * Test prefetchDeltaSignerInfo for failing requests -- the failure should be propagated to * the prefetch listener, and requests on the same domain should fail. */ public void test_prefetchDeltaSignerInfo4() throws Exception { // This will fail later SignerInfoPrefetchResultListener failListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSlowFailingProvider(ticker, EASY_TICKS), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, failListener); // This would succeed later if it weren't for the previous one failing SignerInfoPrefetchResultListener successListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSuccessfulProvider(), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, successListener); verifyZeroInteractions(failListener); verifyZeroInteractions(successListener); // Both callbacks should fail after ticking ticker.tick(EASY_TICKS); verify(failListener).onFailure(GENERIC_ERROR); verify(successListener).onFailure(GENERIC_ERROR); }
/** * Test prefetchDeltaSignerInfo for failing requests -- the failure should be propagated to * the prefetch listener, and requests on the same domain should fail. */ public void test_prefetchDeltaSignerInfo4() throws Exception { // This will fail later SignerInfoPrefetchResultListener failListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSlowFailingProvider(ticker, EASY_TICKS), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, failListener); // This would succeed later if it weren't for the previous one failing SignerInfoPrefetchResultListener successListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSuccessfulProvider(), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, successListener); verifyZeroInteractions(failListener); verifyZeroInteractions(successListener); // Both callbacks should fail after ticking ticker.tick(EASY_TICKS); verify(failListener).onFailure(GENERIC_ERROR); verify(successListener).onFailure(GENERIC_ERROR); }
/** * Test prefetchDeltaSignerInfo for failing requests where a previous request on a different * domain has already succeeded. The failing request should also appear to succeed. */ public void test_prefetchDeltaSignerInfo5() throws Exception { // This would fail if the next (immediate) request didn't succeed SignerInfoPrefetchResultListener failListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSlowFailingProvider(ticker, EASY_TICKS), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), getHashedVersion(), failListener); verifyZeroInteractions(failListener); // This will succeed immediately SignerInfoPrefetchResultListener successListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSuccessfulProvider(), getRealSignerId(), getFakeWaveletName(OTHER_DOMAIN), getHashedVersion(), successListener); verify(successListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); verify(failListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); // The failing listener shouldn't do anything, even after the ticks ticker.tick(EASY_TICKS); verifyNoMoreInteractions(failListener); verifyNoMoreInteractions(successListener); }
/** * Test prefetchDeltaSignerInfo for failing requests where a previous request on a different * domain has already succeeded. The failing request should also appear to succeed. */ public void test_prefetchDeltaSignerInfo5() throws Exception { // This would fail if the next (immediate) request didn't succeed SignerInfoPrefetchResultListener failListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSlowFailingProvider(ticker, EASY_TICKS), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), getHashedVersion(), failListener); verifyZeroInteractions(failListener); // This will succeed immediately SignerInfoPrefetchResultListener successListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSuccessfulProvider(), getRealSignerId(), getFakeWaveletName(OTHER_DOMAIN), getHashedVersion(), successListener); verify(successListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); verify(failListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); // The failing listener shouldn't do anything, even after the ticks ticker.tick(EASY_TICKS); verifyNoMoreInteractions(failListener); verifyNoMoreInteractions(successListener); }
/** * Test prefetchDeltaSignerInfo for a single request on a single domain, and that subsequent * requests on the same domain return instantly. */ public void test_prefetchDeltaSignerInfo1() throws Exception { SignerInfoPrefetchResultListener mockListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSuccessfulProvider(), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, mockListener); verify(mockListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); // Shouldn't get a NPE from the null provider because the callback should not be used manager.prefetchDeltaSignerInfo(null, getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, mockListener); verify(mockListener, times(2)).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); }
/** * Test prefetchDeltaSignerInfo for a single request on a single domain, and that subsequent * requests on the same domain return instantly. */ public void test_prefetchDeltaSignerInfo1() throws Exception { SignerInfoPrefetchResultListener mockListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSuccessfulProvider(), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, mockListener); verify(mockListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); // Shouldn't get a NPE from the null provider because the callback should not be used manager.prefetchDeltaSignerInfo(null, getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, mockListener); verify(mockListener, times(2)).onSuccess(Certificates.getRealSignerInfo().toProtoBuf()); }
@Override public synchronized void prefetchDeltaSignerInfo(WaveletFederationProvider provider, ByteString signerId, WaveletName waveletName, HashedVersion deltaEndVersion, SignerInfoPrefetchResultListener callback) { ProtocolSignerInfo signerInfo = retrieveSignerInfo(signerId); if (signerInfo != null) { callback.onSuccess(signerInfo); } else { enqueueSignerInfoRequest(provider, signerId, waveletName, deltaEndVersion, callback); } }