Ejemplo n.º 1
0
        public void TestPrepareForRetry()
        {
            LoginUtil.Cache.AddToken(USER_NAME, USER_TOKEN);
            (user.Config as DfaAppConfig).DfaAuthToken = PASSWORD;
            adRemoteService.Token  = USER_TOKEN;
            user.Config.RetryCount = 1;

            // PrepareForRetry should reset all relevant values when presented with
            // correct values.
            DfaErrorHandler errorHandler = new DfaErrorHandler(adRemoteService);

            errorHandler.PrepareForRetry(new DfaCredentialsExpiredException(USER_TOKEN));
            Assert.IsNull(LoginUtil.Cache.GetToken(USER_NAME));
            Assert.IsNull(adRemoteService.Token);
            Assert.IsNull((user.Config as DfaAppConfig).DfaAuthToken);

            // Indirectly test retryCount. This should become 1 after
            // PrepareForRetry() and another attempt to retry should fail.
            Assert.IsFalse(errorHandler.ShouldRetry(new DfaCredentialsExpiredException(USER_TOKEN)));

            // PrepareRetry should rethrow any exception that is not
            // DfaCredentialsExpiredException
            errorHandler = new DfaErrorHandler(adRemoteService);

            Exception ex = new Exception();

            try {
                errorHandler.PrepareForRetry(ex);
                Assert.Fail("Should not prepare for retry if exception is not " +
                            "DfaCredentialsExpiredException.");
            } catch (Exception e) {
                Assert.AreSame(ex, e);
            }
        }
Ejemplo n.º 2
0
        public void TestShouldRetry()
        {
            DfaErrorHandler errorHandler = null;

            // Should not retry if RetryCount == 0
            errorHandler           = new DfaErrorHandler(adRemoteService);
            user.Config.RetryCount = 0;
            Assert.IsFalse(errorHandler.ShouldRetry(new DfaCredentialsExpiredException(USER_TOKEN)));

            // Should not retry if exception is not DfaCredentialsExpiredException.
            errorHandler           = new DfaErrorHandler(adRemoteService);
            user.Config.RetryCount = 1;
            Assert.IsFalse(errorHandler.ShouldRetry(new ArgumentNullException()));

            // Should retry if exception is DfaCredentialsExpiredException and
            // RetryCount > 0
            errorHandler           = new DfaErrorHandler(adRemoteService);
            user.Config.RetryCount = 1;
            Assert.IsTrue(errorHandler.ShouldRetry(new DfaCredentialsExpiredException(USER_TOKEN)));
        }