Beispiel #1
0
        public async Task GetPackageDownloaderAsync_IgnoreWarningControlsWarningLogging(bool ignoreWarning)
        {
            using (var test = SourceRepositoryDependencyProviderTest.Create(ignoreWarning: ignoreWarning))
            {
                var resource = new Mock <FindPackageByIdResource>();

                resource.Setup(x => x.GetPackageDownloaderAsync(
                                   It.IsNotNull <PackageIdentity>(),
                                   It.IsNotNull <SourceCacheContext>(),
                                   It.IsNotNull <ILogger>(),
                                   It.IsAny <CancellationToken>()))
                .ThrowsAsync(new FatalProtocolException("simulated"));

                test.SourceRepository.Setup(s => s.GetResourceAsync <FindPackageByIdResource>())
                .ReturnsAsync(resource.Object);

                Assert.Equal(0, test.Logger.Warnings);

                await test.Provider.GetPackageDownloaderAsync(
                    new PackageIdentity(id : "a", version : NuGetVersion.Parse("1.0.0")),
                    test.SourceCacheContext,
                    test.Logger,
                    CancellationToken.None);

                var expectedWarningCount = ignoreWarning ? 0 : 1;

                Assert.Equal(expectedWarningCount, test.Logger.Warnings);
            }
        }
Beispiel #2
0
        public async Task GetPackageDownloaderAsync_ReturnsPackageDownloader()
        {
            using (var test = SourceRepositoryDependencyProviderTest.Create())
            {
                var expectedPackageDownloader = Mock.Of <IPackageDownloader>();
                var resource = new Mock <FindPackageByIdResource>();

                resource.Setup(x => x.GetPackageDownloaderAsync(
                                   It.IsNotNull <PackageIdentity>(),
                                   It.IsNotNull <SourceCacheContext>(),
                                   It.IsNotNull <ILogger>(),
                                   It.IsAny <CancellationToken>()))
                .ReturnsAsync(expectedPackageDownloader);

                test.SourceRepository.Setup(s => s.GetResourceAsync <FindPackageByIdResource>())
                .ReturnsAsync(resource.Object);

                var actualPackageDownloader = await test.Provider.GetPackageDownloaderAsync(
                    new PackageIdentity(id : "a", version : NuGetVersion.Parse("1.0.0")),
                    test.SourceCacheContext,
                    NullLogger.Instance,
                    CancellationToken.None);

                Assert.Same(expectedPackageDownloader, actualPackageDownloader);
            }
        }
Beispiel #3
0
        public async Task GetPackageDownloaderAsync_ReturnsNullForFailedSourceIfIgnoreFailedSourcesIsTrue()
        {
            using (var test = SourceRepositoryDependencyProviderTest.Create())
            {
                var resource = new Mock <FindPackageByIdResource>();

                resource.Setup(x => x.GetPackageDownloaderAsync(
                                   It.IsNotNull <PackageIdentity>(),
                                   It.IsNotNull <SourceCacheContext>(),
                                   It.IsNotNull <ILogger>(),
                                   It.IsAny <CancellationToken>()))
                .ThrowsAsync(new FatalProtocolException("simulated"));

                test.SourceRepository.Setup(s => s.GetResourceAsync <FindPackageByIdResource>())
                .ReturnsAsync(resource.Object);

                var packageDownloader = await test.Provider.GetPackageDownloaderAsync(
                    new PackageIdentity(id : "a", version : NuGetVersion.Parse("1.0.0")),
                    test.SourceCacheContext,
                    NullLogger.Instance,
                    CancellationToken.None);

                Assert.Null(packageDownloader);
            }
        }
Beispiel #4
0
 public void Constructor_InitializesProperties()
 {
     using (var test = SourceRepositoryDependencyProviderTest.Create())
     {
         Assert.Equal(test.PackageSource.IsHttp, test.Provider.IsHttp);
         Assert.Same(test.PackageSource, test.Provider.Source);
     }
 }
Beispiel #5
0
 public async Task GetPackageDownloaderAsync_ThrowsIfCancelled()
 {
     using (var test = SourceRepositoryDependencyProviderTest.Create())
     {
         await Assert.ThrowsAsync <OperationCanceledException>(
             () => test.Provider.GetPackageDownloaderAsync(
                 new PackageIdentity(id: "a", version: NuGetVersion.Parse("1.0.0")),
                 test.SourceCacheContext,
                 NullLogger.Instance,
                 new CancellationToken(canceled: true)));
     }
 }
Beispiel #6
0
 public async Task FindLibraryAsync_ThrowsIfCancelled()
 {
     using (var test = SourceRepositoryDependencyProviderTest.Create())
     {
         await Assert.ThrowsAsync <OperationCanceledException>(
             () => test.Provider.FindLibraryAsync(
                 new LibraryIdentity("a", NuGetVersion.Parse("1.0.0"), LibraryType.Package),
                 NuGetFramework.Parse("net45"),
                 test.SourceCacheContext,
                 NullLogger.Instance,
                 new CancellationToken(canceled: true)));
     }
 }
Beispiel #7
0
        public async Task GetPackageDownloaderAsync_ThrowsForNullLogger()
        {
            using (var test = SourceRepositoryDependencyProviderTest.Create())
            {
                var exception = await Assert.ThrowsAsync <ArgumentNullException>(
                    () => test.Provider.GetPackageDownloaderAsync(
                        new PackageIdentity(id: "a", version: NuGetVersion.Parse("1.0.0")),
                        test.SourceCacheContext,
                        logger: null,
                        cancellationToken: CancellationToken.None));

                Assert.Equal("logger", exception.ParamName);
            }
        }
Beispiel #8
0
        public async Task GetPackageDownloaderAsync_ThrowsForNullPackageIdentity()
        {
            using (var test = SourceRepositoryDependencyProviderTest.Create())
            {
                var exception = await Assert.ThrowsAsync <ArgumentNullException>(
                    () => test.Provider.GetPackageDownloaderAsync(
                        packageIdentity: null,
                        cacheContext: test.SourceCacheContext,
                        logger: NullLogger.Instance,
                        cancellationToken: CancellationToken.None));

                Assert.Equal("packageIdentity", exception.ParamName);
            }
        }
Beispiel #9
0
        public async Task GetDependenciesAsync_ThrowsForNullLibraryIdentity()
        {
            using (var test = SourceRepositoryDependencyProviderTest.Create())
            {
                var exception = await Assert.ThrowsAsync <ArgumentNullException>(
                    () => test.Provider.GetDependenciesAsync(
                        libraryIdentity: null,
                        targetFramework: NuGetFramework.Parse("net45"),
                        cacheContext: test.SourceCacheContext,
                        logger: NullLogger.Instance,
                        cancellationToken: CancellationToken.None));

                Assert.Equal("libraryIdentity", exception.ParamName);
            }
        }
Beispiel #10
0
        public async Task FindLibraryAsync_ThrowsForNullLogger()
        {
            using (var test = SourceRepositoryDependencyProviderTest.Create())
            {
                var exception = await Assert.ThrowsAsync <ArgumentNullException>(
                    () => test.Provider.FindLibraryAsync(
                        new LibraryIdentity("a", NuGetVersion.Parse("1.0.0"), LibraryType.Package),
                        NuGetFramework.Parse("net45"),
                        test.SourceCacheContext,
                        logger: null,
                        cancellationToken: CancellationToken.None));

                Assert.Equal("logger", exception.ParamName);
            }
        }
Beispiel #11
0
        public async Task GetPackageDownloaderAsync_ReturnsPackageDownloader()
        {
            using (var test = SourceRepositoryDependencyProviderTest.Create())
            {
                var expectedPackageDownloader = new Mock <IPackageDownloader>(MockBehavior.Strict);
                var resource = new Mock <FindPackageByIdResource>();

                if (RuntimeEnvironmentHelper.IsMacOSX)
                {
                    expectedPackageDownloader.Setup(x => x.SetThrottle(It.IsNotNull <SemaphoreSlim>()));
                }
                else
                {
                    expectedPackageDownloader.Setup(x => x.SetThrottle(It.Is <SemaphoreSlim>(s => s == null)));
                }

                expectedPackageDownloader.Setup(
                    x => x.SetExceptionHandler(It.IsNotNull <Func <Exception, Task <bool> > >()));

                resource.Setup(x => x.GetPackageDownloaderAsync(
                                   It.IsNotNull <PackageIdentity>(),
                                   It.IsNotNull <SourceCacheContext>(),
                                   It.IsNotNull <ILogger>(),
                                   It.IsAny <CancellationToken>()))
                .ReturnsAsync(expectedPackageDownloader.Object);

                test.SourceRepository.Setup(s => s.GetResourceAsync <FindPackageByIdResource>())
                .ReturnsAsync(resource.Object);

                var actualPackageDownloader = await test.Provider.GetPackageDownloaderAsync(
                    new PackageIdentity(id : "a", version : NuGetVersion.Parse("1.0.0")),
                    test.SourceCacheContext,
                    NullLogger.Instance,
                    CancellationToken.None);

                Assert.Same(expectedPackageDownloader.Object, actualPackageDownloader);

                expectedPackageDownloader.VerifyAll();
            }
        }