public async Task GetDownloadResourceResultAsync_ThrowsForNullDownloadContext()
        {
            var resource = new DownloadResourcePlugin(
                _plugin.Object,
                _utilities.Object,
                _packageSource);

            using (var sourceCacheContext = new SourceCacheContext())
            {
                var exception = await Assert.ThrowsAsync <ArgumentNullException>(
                    () => resource.GetDownloadResourceResultAsync(
                        new PackageIdentity(id: "a", version: NuGetVersion.Parse("1.0.0")),
                        downloadContext: null,
                        globalPackagesFolder: "",
                        logger: NullLogger.Instance,
                        cancellationToken: CancellationToken.None));

                Assert.Equal("downloadContext", exception.ParamName);
            }
        }
        public DownloadResourcePluginTests()
        {
            _packageSource     = new PackageSource("https://unit.test");
            _proxy             = new Mock <IWebProxy>();
            _credentialService = new Mock <ICredentialService>();
            _dispatcher        = new Mock <IMessageDispatcher>();
            _connection        = new Mock <IConnection>();
            _plugin            = new Mock <IPlugin>();
            _utilities         = new Mock <IPluginMulticlientUtilities>();

            _dispatcher.SetupGet(x => x.RequestHandlers)
            .Returns(new RequestHandlers());

            _connection.SetupGet(x => x.MessageDispatcher)
            .Returns(_dispatcher.Object);

            _plugin.SetupGet(x => x.Connection)
            .Returns(_connection.Object);

            _resource = new DownloadResourcePlugin(
                _plugin.Object,
                _utilities.Object,
                _packageSource);
        }