public async Task GetCredentialProvidersExecutedOnlyOnce()
        {
            var counter = new CallCounter();
            var service = new CredentialService(new AsyncLazy <IEnumerable <ICredentialProvider> >(() => counter.GetProviders()), nonInteractive: true, handlesDefaultCredentials: true);

            var uri1 = new Uri("http://uri1");

            // Act
            var result1 = await service.GetCredentialsAsync(
                uri1,
                proxy : null,
                type : CredentialRequestType.Unauthorized,
                message : null,
                cancellationToken : CancellationToken.None);

            var result2 = await service.GetCredentialsAsync(
                uri1,
                proxy : null,
                type : CredentialRequestType.Unauthorized,
                message : null,
                cancellationToken : CancellationToken.None);

            Assert.Equal(1, counter.CallCount);
        }