/** * Test prefetchDeltaSignerInfo for multiple requests on a single domain where the first one * does not terminate. The entire request should fail. */ public void test_prefetchDeltaSignerInfo2() throws Exception { // The dead listener won't return SignerInfoPrefetchResultListener deadListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getDeadProvider(), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, deadListener); verifyZeroInteractions(deadListener); // But this will. However, it shouldn't be called since the other was added first, and only // 1 request is started per domain SignerInfoPrefetchResultListener aliveListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSuccessfulProvider(), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, aliveListener); verifyZeroInteractions(aliveListener); }
/** * Test prefetchDeltaSignerInfo for multiple requests on a single domain where the first one * does not terminate. The entire request should fail. */ public void test_prefetchDeltaSignerInfo2() throws Exception { // The dead listener won't return SignerInfoPrefetchResultListener deadListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getDeadProvider(), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, deadListener); verifyZeroInteractions(deadListener); // But this will. However, it shouldn't be called since the other was added first, and only // 1 request is started per domain SignerInfoPrefetchResultListener aliveListener = mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSuccessfulProvider(), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, aliveListener); verifyZeroInteractions(aliveListener); }
/** * 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 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()); }
LOG.info("Fetching signer info " + Base64.encodeBase64(sig.getSignerId().toByteArray())); numSignerInfoPrefetched.incrementAndGet(); certificateManager.prefetchDeltaSignerInfo(federationProvider, sig.getSignerId(), getWaveletName(), deltaEndVersion, prefetchListener);
/** * 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 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); }
manager.prefetchDeltaSignerInfo(getDeadProvider(), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, deadListener); verifyZeroInteractions(deadListener); mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSlowSuccessfulProvider(ticker, EASY_TICKS), getRealSignerId(), getFakeWaveletName(OTHER_DOMAIN), null, slowSuccessListener); verifyZeroInteractions(slowSuccessListener); manager.prefetchDeltaSignerInfo(getSuccessfulProvider(), getRealSignerId(), getFakeWaveletName(OTHER_DOMAIN), null, successListener); verifyZeroInteractions(successListener); manager.prefetchDeltaSignerInfo(null, getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, nullListener); verify(nullListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf());
manager.prefetchDeltaSignerInfo(getDeadProvider(), getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, deadListener); verifyZeroInteractions(deadListener); mock(SignerInfoPrefetchResultListener.class); manager.prefetchDeltaSignerInfo(getSlowSuccessfulProvider(ticker, EASY_TICKS), getRealSignerId(), getFakeWaveletName(OTHER_DOMAIN), null, slowSuccessListener); verifyZeroInteractions(slowSuccessListener); manager.prefetchDeltaSignerInfo(getSuccessfulProvider(), getRealSignerId(), getFakeWaveletName(OTHER_DOMAIN), null, successListener); verifyZeroInteractions(successListener); manager.prefetchDeltaSignerInfo(null, getRealSignerId(), getFakeWaveletName(CertificateManagerImplTest.DOMAIN), null, nullListener); verify(nullListener).onSuccess(Certificates.getRealSignerInfo().toProtoBuf());