コード例 #1
0
        public async Task PackageMetadataResource_Basic()
        {
            // Arrange
            var serviceAddress = ProtocolUtility.CreateServiceAddress();

            var responses = new Dictionary <string, string>();

            responses.Add(serviceAddress + "FindPackagesById()?id='WindowsAzure.Storage'&semVerLevel=2.0.0",
                          ProtocolUtility.GetResource("NuGet.Protocol.Tests.compiler.resources.WindowsAzureStorageFindPackagesById.xml", GetType()));
            responses.Add(serviceAddress, string.Empty);

            var repo = StaticHttpHandler.CreateSource(serviceAddress, Repository.Provider.GetCoreV3(), responses);

            var packageMetadataResource = await repo.GetResourceAsync <PackageMetadataResource>();

            // Act
            var metadata = await packageMetadataResource.GetMetadataAsync("WindowsAzure.Storage", true, false, NullLogger.Instance, CancellationToken.None);

            var latestPackage = (PackageSearchMetadataV2Feed)metadata.OrderByDescending(e => e.Identity.Version, VersionComparer.VersionRelease).FirstOrDefault();

            // Assert
            Assert.Equal(44, metadata.Count());

            Assert.Equal("WindowsAzure.Storage", latestPackage.Identity.Id);
            Assert.Equal("6.2.2-preview", latestPackage.Identity.Version.ToNormalizedString());
            Assert.Equal("WindowsAzure.Storage", latestPackage.Title);
            Assert.Equal("Microsoft", latestPackage.Authors);
            Assert.Equal("", latestPackage.Owners);
            Assert.True(latestPackage.Description.StartsWith("This client library enables"));
            Assert.Equal(3957668, latestPackage.DownloadCount);
            Assert.Equal("http://go.microsoft.com/fwlink/?LinkID=288890", latestPackage.IconUrl.AbsoluteUri);
            Assert.Equal("http://go.microsoft.com/fwlink/?LinkId=331471", latestPackage.LicenseUrl.AbsoluteUri);
            Assert.Equal("http://go.microsoft.com/fwlink/?LinkId=235168", latestPackage.ProjectUrl.AbsoluteUri);
            Assert.Equal(DateTimeOffset.Parse("2015-12-11T01:25:11.37"), latestPackage.Published.Value);
            Assert.Equal(DateTimeOffset.Parse("2015-12-11T01:25:11.37"), latestPackage.Created.Value);
            Assert.Null(latestPackage.LastEdited);
            Assert.Equal("https://www.nuget.org/package/ReportAbuse/WindowsAzure.Storage/6.2.2-preview", latestPackage.ReportAbuseUrl.AbsoluteUri);
            Assert.True(latestPackage.RequireLicenseAcceptance);
            Assert.Equal("A client library for working with Microsoft Azure storage services including blobs, files, tables, and queues.", latestPackage.Summary);
            Assert.Equal("Microsoft Azure Storage Table Blob File Queue Scalable windowsazureofficial", latestPackage.Tags);
            Assert.Equal(6, latestPackage.DependencySets.Count());
            Assert.Equal("dotnet5.4", latestPackage.DependencySets.First().TargetFramework.GetShortFolderName());
        }
コード例 #2
0
        public async Task DefaultBaseAddressIsServiceAddressWithTrimmedSlash()
        {
            // Arrange
            var serviceAddress = ProtocolUtility.CreateServiceAddress() + '/';

            var responses = new Dictionary <string, string>();

            responses.Add(serviceAddress, string.Empty);

            var repo = StaticHttpHandler.CreateSource(serviceAddress, Repository.Provider.GetCoreV3(), responses);

            var oDataServiceDocumentResource = await repo.GetResourceAsync <ODataServiceDocumentResourceV2>();

            // Act
            var baseAddress = oDataServiceDocumentResource.BaseAddress;

            // Assert
            Assert.Equal(serviceAddress.Trim('/'), baseAddress);
        }
コード例 #3
0
        public async Task RepositorySignatureResource_RepositorySignatureInfoConcurrency()
        {
            // Arrange
            var source1 = $"http://unit.test/{Guid.NewGuid()}1/v3-with-flat-container/index.json";
            var source2 = $"http://unit.test/{Guid.NewGuid()}2/v3-with-flat-container/index.json";
            var source3 = $"http://unit.test/{Guid.NewGuid()}3/v3-with-flat-container/index.json";

            var sources = new List <string>()
            {
                source1, source2, source3
            };

            var responses = new Dictionary <string, string>();

            responses.Add(source1, JsonData.RepoSignIndexJsonData);
            responses.Add(source2, JsonData.RepoSignIndexJsonData);
            responses.Add(source3, JsonData.RepoSignIndexJsonData);

            responses.Add("https://api.nuget.org/v3-index/repository-signatures/index.json", JsonData.RepoSignData);

            var repos = sources.Select(p => StaticHttpHandler.CreateSource(p, Repository.Provider.GetCoreV3(), responses));

            // Act
            var findPackageByIdResourceTasks = repos.Select(p => p.GetResourceAsync <FindPackageByIdResource>());

            await Task.WhenAll(findPackageByIdResourceTasks);

            // Assert
            RepositorySignatureInfoProvider.Instance.TryGetRepositorySignatureInfo(source1, out var repositorySignatureInfo1);
            RepositorySignatureInfoProvider.Instance.TryGetRepositorySignatureInfo(source2, out var repositorySignatureInfo2);
            RepositorySignatureInfoProvider.Instance.TryGetRepositorySignatureInfo(source3, out var repositorySignatureInfo3);

            var repositorySignatureInfos = new List <RepositorySignatureInfo>()
            {
                repositorySignatureInfo1, repositorySignatureInfo2, repositorySignatureInfo3
            };

            Assert.True(repositorySignatureInfos.All(p => p.AllRepositorySigned == false));
            Assert.True(repositorySignatureInfos.All(p => p.RepositoryCertificateInfos != null));
            Assert.True(repositorySignatureInfos.All(p => p.RepositoryCertificateInfos.Count() == 1));

            repositorySignatureInfos.ForEach(p => VerifyCertInfo(p.RepositoryCertificateInfos.FirstOrDefault()));
        }
コード例 #4
0
        public async Task TryCreate_ReturnsFalse_IfSourceLocationReturnsFailureCode()
        {
            // Arrange
            var source = "https://does-not-exist.server/does-not-exist.json";
            // This will return a 404 - NotFound.
            var handlerProvider = StaticHttpHandler.CreateHttpHandler(new Dictionary <string, string> {
                { source, string.Empty }
            });
            var provider         = new ServiceIndexResourceV3Provider();
            var sourceRepository = new SourceRepository(new PackageSource(source),
                                                        new INuGetResourceProvider[] { handlerProvider, provider });

            // Act
            var result = await provider.TryCreate(sourceRepository, default(CancellationToken));

            // Assert
            Assert.False(result.Item1);
            Assert.Null(result.Item2);
        }
        public async Task PowershellAutoComplete_IdStartsWithReturnsExpectedResults(string sourceUrl)
        {
            // Arrange
            var source   = StaticHttpHandler.CreateSource(sourceUrl, Repository.Provider.GetVisualStudio(), ResponsesDict);
            var resource = await source.GetResourceAsync <AutoCompleteResource>();

            Assert.NotNull(resource);

            var logger = new TestLogger();

            // Act
            CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
            IEnumerable <string>    packages = await resource.IdStartsWith("elm", true, logger, cancellationTokenSource.Token);

            // Assert
            Assert.True(packages != null & packages.Any());
            Assert.Contains("elmah", packages);
            Assert.NotEqual(0, logger.Messages.Count);
        }
コード例 #6
0
        public async Task MetadataClient_ResolvePackageNotFoundOnServer()
        {
            // Arrange
            var responses = new Dictionary <string, string>();

            responses.Add("http://testsource.com/v3/index.json", JsonData.Index);
            responses.Add("https://api.nuget.org/v3/registration0/microsoft.owin/index.json", JsonData.MicrosoftOwinRegistration);
            responses.Add("https://api.nuget.org/v3/registration0/owin/index.json", null);
            // Owin is not added
            var repo = StaticHttpHandler.CreateSource("http://testsource.com/v3/index.json", Repository.Provider.GetCoreV3(), responses);

            var resource = await repo.GetResourceAsync <DependencyInfoResource>();

            // Act
            var results = await resource.ResolvePackages("owin", NuGetFramework.Parse("net45"), CancellationToken.None);

            // Assert
            Assert.Equal(0, results.Count());
        }
コード例 #7
0
        public async Task MetadataClient_GatherAllPackages()
        {
            // Arrange
            var responses = new Dictionary <string, string>();

            responses.Add("http://testsource.com/v3/index.json", JsonData.Index);
            responses.Add("https://api.nuget.org/v3/registration0/deepequal/index.json", JsonData.DeepEqualRegistationIndex);

            var repo = StaticHttpHandler.CreateSource("http://testsource.com/v3/index.json", Repository.Provider.GetCoreV3(), responses);

            var resource = await repo.GetResourceAsync <DependencyInfoResource>();

            // Act
            var results = await resource.ResolvePackages("deepequal", NuGetFramework.Parse("net45"), CancellationToken.None);

            // Assert
            Assert.Equal(19, results.Count());
            Assert.Equal(1, results.Count(package => package.Version.IsPrerelease));
        }
コード例 #8
0
        public async Task FollowsRedirect()
        {
            // Arrange
            var serviceAddress = ProtocolUtility.CreateServiceAddress();

            var responses = new Dictionary <string, string>();

            responses.Add(serviceAddress, "301 https://bringing/it/all/back/home");

            var repo = StaticHttpHandler.CreateSource(serviceAddress, Repository.Provider.GetCoreV3(), responses);

            var oDataServiceDocumentResource = await repo.GetResourceAsync <ODataServiceDocumentResourceV2>();

            // Act
            var baseAddress = oDataServiceDocumentResource.BaseAddress;

            // Assert
            Assert.Equal("https://bringing/it/all/back/home", baseAddress);
        }
コード例 #9
0
        public async Task AutoCompleteResourceV3_IdStartsWithAsync()
        {
            // Arrange
            var          responses  = new Dictionary <string, string>();
            const string sourceName = "http://testsource.com/v3/index.json";

            responses.Add(sourceName, JsonData.IndexWithoutFlatContainer);
            responses.Add("https://api-v3search-0.nuget.org/autocomplete?q=newt&prerelease=true&semVerLevel=2.0.0",
                          JsonData.AutoCompleteEndpointNewtResult);

            var repo     = StaticHttpHandler.CreateSource(sourceName, Repository.Provider.GetCoreV3(), responses);
            var resource = await repo.GetResourceAsync <AutoCompleteResource>();

            // Act
            var result = resource.IdStartsWith("newt", true, NullLogger.Instance, CancellationToken.None);

            // Assert
            Assert.Equal(10, result.Result.Count());
        }
コード例 #10
0
ファイル: SearchTests.cs プロジェクト: anthrax3/NuGet3
        public async Task PowerShellSearchResource_WithPSMetadata()
        {
            Dictionary <string, string> responses = new Dictionary <string, string>();

            responses.Add("http://testsource.com/v3/index.json", JsonData.IndexJson);
            responses.Add("https://api-v3search-0.nuget.org/query?q=test&skip=0&take=10&prerelease=false", JsonData.ExamplePSMetadata);

            var repo = StaticHttpHandler.CreateSource("http://testsource.com/v3/index.json", Repository.Provider.GetPowerShell(), responses);

            var resource = await repo.GetResourceAsync <PowerShellSearchResource>();

            var results = await resource.Search("test", new SearchFilter(), 0, 10, CancellationToken.None);

            var package = results.FirstOrDefault();

            // verify the identity is used everywhere
            Assert.Equal("EntityFramework", package.Id);
            Assert.Equal("6.1.2", package.Version.ToNormalizedString());

            Assert.Equal("EntityFramework", package.ServerPackage.Id);
            Assert.Equal("6.1.2", package.ServerPackage.Version.ToNormalizedString());

            Assert.Equal("EntityFramework", package.PowerShellMetadata.Id);
            Assert.Equal("6.1.2", package.PowerShellMetadata.Version.ToNormalizedString());

            Assert.Equal("http://go.microsoft.com/fwlink/?LinkID=386613", package.ServerPackage.IconUrl.AbsoluteUri);

            // verify the PS metadata
            Assert.Equal("1.0.0", package.PowerShellMetadata.ModuleVersion.ToNormalizedString());
            Assert.Equal("Microsoft Corporation", package.PowerShellMetadata.CompanyName);
            Assert.Equal("e4da48d8-20df-4d58-bfa6-2e54486fca5b", package.PowerShellMetadata.Guid.ToString());
            Assert.Equal("5.0.0", package.PowerShellMetadata.PowerShellHostVersion.ToNormalizedString());
            Assert.Equal("4.0.0", package.PowerShellMetadata.DotNetFrameworkVersion.ToNormalizedString());
            Assert.Equal("4.0.0", package.PowerShellMetadata.CLRVersion.ToNormalizedString());
            Assert.Equal("x64, x86", package.PowerShellMetadata.ProcessorArchitecture);
            Assert.Equal("Get-Test|Get-Test2", String.Join("|", package.PowerShellMetadata.CmdletsToExport));
            Assert.Equal("Set-Test", String.Join("|", package.PowerShellMetadata.FunctionsToExport));
            Assert.Equal("xFirefox", String.Join("|", package.PowerShellMetadata.DscResourcesToExport));
            Assert.Equal(new Uri("http://license.com"), package.PowerShellMetadata.LicenseUrl);
            Assert.Equal(new Uri("http://project.com"), package.PowerShellMetadata.ProjectUrl);
            Assert.Equal("http://release.notes.com", package.PowerShellMetadata.ReleaseNotes);
        }
コード例 #11
0
        public async Task IgnoresXmlBase()
        {
            // Arrange
            var serviceAddress = ProtocolUtility.CreateServiceAddress();

            var responses = new Dictionary <string, string>();

            responses.Add(serviceAddress, ProtocolUtility.GetResource("NuGet.Protocol.Tests.compiler.resources.ODataServiceDocument.xml", GetType()));

            var repo = StaticHttpHandler.CreateSource(serviceAddress, Repository.Provider.GetCoreV3(), responses);

            var oDataServiceDocumentResource = await repo.GetResourceAsync <ODataServiceDocumentResourceV2>();

            // Act
            var baseAddress = oDataServiceDocumentResource.BaseAddress;

            // Assert
            Assert.NotEqual("https://bringing/it/all/back/home", baseAddress);
            Assert.Equal(serviceAddress.Trim('/'), baseAddress);
        }
コード例 #12
0
        public async Task MetadataClient_ResolvePackageWhereDependencyIsNotFoundOnServer()
        {
            // Arrange
            var responses = new Dictionary <string, string>();

            responses.Add("http://testsource.com/v3/index.json", JsonData.IndexWithoutFlatContainer);
            responses.Add("https://api.nuget.org/v3/registration0/microsoft.owin/index.json", JsonData.MicrosoftOwinRegistration);
            responses.Add("https://api.nuget.org/v3/registration0/owin/index.json", null);
            // Owin is not added
            var repo = StaticHttpHandler.CreateSource("http://testsource.com/v3/index.json", Repository.Provider.GetCoreV3(), responses);

            var resource = await repo.GetResourceAsync <DependencyInfoResource>();

            // Act
            var results = await resource.ResolvePackages("microsoft.owin", NuGetFramework.Parse("net45"), Common.NullLogger.Instance, CancellationToken.None);

            // Assert
            Assert.Equal(14, results.Count());
            Assert.True(results.All(p => p.Id.Equals("microsoft.owin", StringComparison.OrdinalIgnoreCase)));
        }
コード例 #13
0
        public async Task PackageMetadataResourceV3_GetMetadataAsync_NotFound()
        {
            // Arrange
            var responses = new Dictionary <string, string>();

            responses.Add("http://testsource.com/v3/index.json", JsonData.IndexWithoutFlatContainer);
            responses.Add("https://api.nuget.org/v3/registration0/deepequal/index.json", JsonData.DeepEqualRegistationIndex);

            var repo = StaticHttpHandler.CreateSource("http://testsource.com/v3/index.json", Repository.Provider.GetCoreV3(), responses);

            var resource = await repo.GetResourceAsync <PackageMetadataResource>();

            var package = new PackageIdentity("deepequal", NuGetVersion.Parse("0.0.0"));

            // Act
            var result = await resource.GetMetadataAsync(package, Common.NullLogger.Instance, CancellationToken.None);

            // Assert
            Assert.Null(result);
        }
コード例 #14
0
        public async Task AutoCompleteResourceV2Feed_VersionStartsWithInvalidId()
        {
            // Arrange
            var serviceAddress = ProtocolUtility.CreateServiceAddress();

            var responses = new Dictionary <string, string>();

            responses.Add(serviceAddress + "package-versions/azure?includePrerelease=False&semVerLevel=2.0.0", "[]");
            responses.Add(serviceAddress, string.Empty);

            var repo = StaticHttpHandler.CreateSource(serviceAddress, Repository.Provider.GetCoreV3(), responses);

            var autoCompleteResource = await repo.GetResourceAsync <AutoCompleteResource>();

            // Act
            var result = await autoCompleteResource.VersionStartsWith("azure", "1", false, NullLogger.Instance, CancellationToken.None);

            // Assert
            Assert.Equal(0, result.Count());
        }
コード例 #15
0
        public async Task MetadataClient_GatherExactPackage()
        {
            // Arrange
            var responses = new Dictionary <string, string>();

            responses.Add("http://testsource.com/v3/index.json", JsonData.IndexWithoutFlatContainer);
            responses.Add("https://api.nuget.org/v3/registration0/deepequal/index.json", JsonData.DeepEqualRegistationIndex);

            var repo = StaticHttpHandler.CreateSource("http://testsource.com/v3/index.json", Repository.Provider.GetCoreV3(), responses);

            var resource = await repo.GetResourceAsync <DependencyInfoResource>();

            var package = new PackageIdentity("deepequal", NuGetVersion.Parse("0.9.0"));

            // Act
            var result = await resource.ResolvePackage(package, NuGetFramework.Parse("net45"), Common.NullLogger.Instance, CancellationToken.None);

            // Assert
            Assert.Equal(result.Version, package.Version);
        }
コード例 #16
0
        public async Task Delete_WhenDeletingFromHTTPSource_Warns()
        {
            // Arrange
            using (var workingDir = TestDirectory.Create())
            {
                var source = "http://www.nuget.org/api/v2";
                HttpRequestMessage actualRequest = null;
                var responses = new Dictionary <string, Func <HttpRequestMessage, Task <HttpResponseMessage> > >
                {
                    {
                        "http://www.nuget.org/api/v2/DeepEqual/1.4.0.1-rc",
                        request =>
                        {
                            actualRequest = request;
                            return(Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)));
                        }
                    }
                };

                var repo     = StaticHttpHandler.CreateSource(source, Repository.Provider.GetCoreV3(), responses);
                var resource = await repo.GetResourceAsync <PackageUpdateResource>();

                var apiKey = string.Empty;
                var logger = new TestLogger();

                // Act
                await resource.Delete(
                    packageId : "DeepEqual",
                    packageVersion : "1.4.0.1-rc",
                    getApiKey : _ => apiKey,
                    confirm : _ => true,
                    noServiceEndpoint : false,
                    log : logger);

                // Assert
                Assert.NotNull(actualRequest);
                Assert.Equal(HttpMethod.Delete, actualRequest.Method);
                Assert.Equal(3, logger.WarningMessages.Count);
                Assert.Contains("You are running the 'delete' operation with an 'HTTP' source, 'http://www.nuget.org/api/v2/'. Non-HTTPS access will be removed in a future version. Consider migrating to an 'HTTPS' source.", logger.WarningMessages.Last());
            }
        }
コード例 #17
0
        public async Task Push_WithAnHttpSource_NupkgOnly_Warns()
        {
            // Arrange
            using var workingDir = TestDirectory.Create();
            var source = "http://www.nuget.org/api/v2/";
            HttpRequestMessage sourceRequest = null;
            var packageInfo = await SimpleTestPackageUtility.CreateFullPackageAsync(workingDir, "test", "1.0.0");

            var responses = new Dictionary <string, Func <HttpRequestMessage, Task <HttpResponseMessage> > >
            {
                {
                    source,
                    request =>
                    {
                        sourceRequest = request;
                        return(Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)));
                    }
                },
            };
            var resource = await StaticHttpHandler.CreateSource(source, Repository.Provider.GetCoreV3(), responses).GetResourceAsync <PackageUpdateResource>();

            var logger = new TestLogger();

            // Act
            await resource.Push(
                packagePaths : new[] { packageInfo.FullName },
                symbolSource : string.Empty,
                timeoutInSecond : 5,
                disableBuffering : false,
                getApiKey : _ => "serverapikey",
                getSymbolApiKey : _ => null,
                noServiceEndpoint : false,
                skipDuplicate : false,
                symbolPackageUpdateResource : null,
                log : logger);

            // Assert
            Assert.NotNull(sourceRequest);
            Assert.Equal(1, logger.WarningMessages.Count);
            Assert.Contains("You are running the 'push' operation with an 'HTTP' source", logger.WarningMessages.First());
        }
コード例 #18
0
        public async Task PackageSearchResourceV3_GetMetadataAsync_NotFound()
        {
            // Arrange
            var serviceAddress = TestUtility.CreateServiceAddress();

            var responses = new Dictionary <string, string>();

            responses.Add("https://api-v3search-0.nuget.org/query?q=yabbadabbadoo&skip=0&take=1&prerelease=false&semVerLevel=2.0.0",
                          TestUtility.GetResource("NuGet.Protocol.Tests.compiler.resources.EmptySearchResponse.json", GetType()));
            responses.Add(serviceAddress, string.Empty);

            var repo = StaticHttpHandler.CreateSource("http://testsource.com/v3/index.json", Repository.Provider.GetCoreV3(), responses);

            var resource = await repo.GetResourceAsync <PackageSearchResource>();

            // Act
            var packages = await resource.SearchAsync("yabbadabbadoo", new SearchFilter(false), 0, 1, NullLogger.Instance, CancellationToken.None);

            // Assert
            Assert.Empty(packages);
        }
コード例 #19
0
        public async Task AutoCompleteResourceV2Feed_IdStartsWith()
        {
            // Arrange
            var serviceAddress = ProtocolUtility.CreateServiceAddress();

            var responses = new Dictionary <string, string>();

            responses.Add(serviceAddress + "package-ids?partialId=Azure&includePrerelease=False&semVerLevel=2.0.0",
                          ProtocolUtility.GetResource("NuGet.Protocol.Tests.compiler.resources.AzureAutoComplete.json", GetType()));
            responses.Add(serviceAddress, string.Empty);

            var repo = StaticHttpHandler.CreateSource(serviceAddress, Repository.Provider.GetCoreV3(), responses);

            var autoCompleteResource = await repo.GetResourceAsync <AutoCompleteResource>();

            // Act
            var result = await autoCompleteResource.IdStartsWith("Azure", false, NullLogger.Instance, CancellationToken.None);

            // Assert
            Assert.Equal(30, result.Count());
        }
コード例 #20
0
        public async Task PackageMetadataResourceV3_UsesReferenceCache()
        {
            // Arrange
            var responses = new Dictionary <string, string>();

            responses.Add("http://testsource.com/v3/index.json", JsonData.IndexWithoutFlatContainer);
            responses.Add("https://api.nuget.org/v3/registration0/afine/index.json", JsonData.DuplicatePackageBesidesVersionRegistrationIndex);

            var repo = StaticHttpHandler.CreateSource("http://testsource.com/v3/index.json", Repository.Provider.GetCoreV3(), responses);

            var resource = await repo.GetResourceAsync <PackageMetadataResource>();

            // Act
            var result = (IEnumerable <PackageSearchMetadataRegistration>) await resource.GetMetadataAsync("afine", true, true, Common.NullLogger.Instance, CancellationToken.None);

            var first  = result.ElementAt(0);
            var second = result.ElementAt(1);

            // Assert
            MetadataReferenceCacheTestUtility.AssertPackagesHaveSameReferences(first, second);
        }
コード例 #21
0
        public async Task DependencyInfo_RetrieveDependencies_NotFound()
        {
            // Arrange
            var serviceAddress = TestUtility.CreateServiceAddress();

            var responses = new Dictionary <string, string>();

            responses.Add(serviceAddress + "FindPackagesById()?id='not-found'&semVerLevel=2.0.0",
                          TestUtility.GetResource("NuGet.Protocol.Core.v3.Tests.compiler.resources.NotFoundFindPackagesById.xml", GetType()));
            responses.Add(serviceAddress, string.Empty);

            var repo = StaticHttpHandler.CreateSource(serviceAddress, Repository.Provider.GetCoreV3(), responses);

            var dependencyInfoResource = await repo.GetResourceAsync <DependencyInfoResource>();

            // Act
            var results = await dependencyInfoResource.ResolvePackages("not-found", NuGetFramework.Parse("net45"), Common.NullLogger.Instance, CancellationToken.None);

            // Assert
            Assert.Equal(0, results.Count());
        }
コード例 #22
0
        public async Task PackageMetadataResource_NotFound()
        {
            // Arrange
            var serviceAddress = TestUtility.CreateServiceAddress();

            var responses = new Dictionary <string, string>();

            responses.Add(serviceAddress + "FindPackagesById()?id='not-found'",
                          TestUtility.GetResource("NuGet.Protocol.Core.v3.Tests.compiler.resources.NotFoundFindPackagesById.xml", GetType()));
            responses.Add(serviceAddress, string.Empty);

            var repo = StaticHttpHandler.CreateSource(serviceAddress, Repository.Provider.GetCoreV3(), responses);

            var packageMetadataResource = await repo.GetResourceAsync <PackageMetadataResource>();

            // Act
            var metadata = await packageMetadataResource.GetMetadataAsync("not-found", true, false, NullLogger.Instance, CancellationToken.None);

            // Assert
            Assert.Equal(0, metadata.Count());
        }
コード例 #23
0
        public async Task MetadataClient_ResolvePackageNotFoundOnServer_Exact()
        {
            // Arrange
            var responses = new Dictionary <string, string>();

            responses.Add("http://testsource.com/v3/index.json", JsonData.IndexWithoutFlatContainer);
            responses.Add("https://api.nuget.org/v3/registration0/microsoft.owin/index.json", JsonData.MicrosoftOwinRegistration);
            responses.Add("https://api.nuget.org/v3/registration0/owin/index.json", "");
            // Owin is not added
            var repo = StaticHttpHandler.CreateSource("http://testsource.com/v3/index.json", Repository.Provider.GetCoreV3(), responses);

            var resource = await repo.GetResourceAsync <DependencyInfoResource>();

            var package = new PackageIdentity("owin", NuGetVersion.Parse("1.0.0"));

            // Act
            var result = await resource.ResolvePackage(package, NuGetFramework.Parse("net45"), Common.NullLogger.Instance, CancellationToken.None);

            // Assert
            Assert.Null(result);
        }
コード例 #24
0
        public async Task MetaDataResourceGetVersions()
        {
            // Arrange
            var serviceAddress = TestUtility.CreateServiceAddress();

            var responses = new Dictionary <string, string>();

            responses.Add(serviceAddress + "FindPackagesById()?id='WindowsAzure.Storage'&semVerLevel=2.0.0",
                          TestUtility.GetResource("NuGet.Protocol.Tests.compiler.resources.WindowsAzureStorageFindPackagesById.xml", GetType()));
            responses.Add(serviceAddress, string.Empty);

            var repo = StaticHttpHandler.CreateSource(serviceAddress, Repository.Provider.GetCoreV3(), responses);

            var metadataResource = await repo.GetResourceAsync <MetadataResource>();

            // Act
            var versions = await metadataResource.GetVersions("WindowsAzure.Storage", true, false, NullLogger.Instance, CancellationToken.None);

            // Assert
            Assert.Equal(44, versions.Count());
        }
コード例 #25
0
        public async Task TryCreate_ReturnsTrue_IfSourceLocationReturnsValidJson()
        {
            // Arrange
            var source          = "https://some-site.org/test.json";
            var content         = @"{ version: '3.1.0-beta' }";
            var handlerProvider = StaticHttpHandler.CreateHttpHandler(new Dictionary <string, string> {
                { source, content }
            });
            var provider         = new ServiceIndexResourceV3Provider();
            var sourceRepository = new SourceRepository(new PackageSource(source),
                                                        new INuGetResourceProvider[] { handlerProvider, provider });

            // Act
            var result = await provider.TryCreate(sourceRepository, default(CancellationToken));

            // Assert
            Assert.True(result.Item1);
            var resource = Assert.IsType <ServiceIndexResourceV3>(result.Item2);

            Assert.NotNull(resource.Index);
        }
コード例 #26
0
        public async Task AutoCompleteResourceV2Feed_VersionStartsWith()
        {
            // Arrange
            var serviceAddress = TestUtility.CreateServiceAddress();

            var responses = new Dictionary <string, string>();

            responses.Add(serviceAddress + "package-versions/xunit?includePrerelease=False",
                          TestUtility.GetResource("NuGet.Protocol.Core.v3.Tests.compiler.resources.XunitVersionAutoComplete.json", GetType()));
            responses.Add(serviceAddress, string.Empty);

            var repo = StaticHttpHandler.CreateSource(serviceAddress, Repository.Provider.GetCoreV3(), responses);

            var autoCompleteResource = await repo.GetResourceAsync <AutoCompleteResource>();

            // Act
            var result = await autoCompleteResource.VersionStartsWith("xunit", "1", false, NullLogger.Instance, CancellationToken.None);

            // Assert
            Assert.Equal(6, result.Count());
        }
コード例 #27
0
        public async Task PackageMetadataResourceV3_GetMetadataAsync_Unlisted()
        {
            var responses = new Dictionary <string, string>();

            responses.Add("http://testsource.com/v3/index.json", JsonData.IndexWithoutFlatContainer);
            responses.Add("https://api.nuget.org/v3/registration0/unlistedpackagea/index.json", JsonData.UnlistedPackageARegistration);

            var repo = StaticHttpHandler.CreateSource("http://testsource.com/v3/index.json", Repository.Provider.GetCoreV3(), responses);

            var resource = await repo.GetResourceAsync <PackageMetadataResource>();

            var package = new PackageIdentity("unlistedpackagea", NuGetVersion.Parse("1.0.0"));

            // Act
            using (var sourceCacheContext = new SourceCacheContext())
            {
                var result = (PackageSearchMetadataRegistration)await resource.GetMetadataAsync(package, sourceCacheContext, Common.NullLogger.Instance, CancellationToken.None);

                // Assert
                Assert.False(result.IsListed);
            }
        }
コード例 #28
0
        public async Task PowershellAutoComplete_VersionStartsWithReturnsExpectedResults(string sourceUrl)
        {
            // Arrange
            var source   = StaticHttpHandler.CreateSource(sourceUrl, Repository.Provider.GetVisualStudio(), ResponsesDict);
            var resource = await source.GetResourceAsync <AutoCompleteResource>();

            Assert.NotNull(resource);

            // Act
            var versions = await resource.VersionStartsWith(
                "NuGet.Versioning",
                "3.",
                includePrerelease : true,
                log : NullLogger.Instance,
                token : CancellationToken.None);

            // Assert
            Assert.NotNull(versions);
            Assert.Equal(2, versions.Count());
            Assert.Contains(new NuGetVersion("3.5.0-rc1-final"), versions);
            Assert.Contains(new NuGetVersion("3.5.0"), versions);
        }
コード例 #29
0
        public async Task MetadataClient_ResolvePackageWithEmptyDependencyGroups()
        {
            // Arrange
            var responses = new Dictionary <string, string>();

            responses.Add("http://testsource.com/v3/index.json", JsonData.IndexWithoutFlatContainer);
            responses.Add("https://api.nuget.org/v3/registration0/deepequal/index.json", JsonData.DeepEqualRegistationIndex);

            var repo = StaticHttpHandler.CreateSource("http://testsource.com/v3/index.json", Repository.Provider.GetCoreV3(), responses);

            var resource = await repo.GetResourceAsync <DependencyInfoResource>();

            // Act
            var results = await resource.ResolvePackages("deepequal", NuGetFramework.Parse("net45"), Common.NullLogger.Instance, CancellationToken.None);

            var target = results.Where(p => p.Version == NuGetVersion.Parse("1.4.0")).Single();

            // Assert
            Assert.Equal(19, results.Count());

            Assert.Equal(0, target.Dependencies.Count());
        }
コード例 #30
0
        public async Task MetaDataResourceIdExistNotFoundId()
        {
            // Arrange
            var serviceAddress = TestUtility.CreateServiceAddress();

            var responses = new Dictionary <string, string>();

            responses.Add(
                serviceAddress + "FindPackagesById()?id='not-found'&semVerLevel=2.0.0",
                TestUtility.GetResource("NuGet.Protocol.Tests.compiler.resources.NotFoundFindPackagesById.xml", GetType()));
            responses.Add(serviceAddress, string.Empty);

            var repo = StaticHttpHandler.CreateSource(serviceAddress, Repository.Provider.GetCoreV3(), responses);

            var metadataResource = await repo.GetResourceAsync <MetadataResource>();

            // Act
            var exist = await metadataResource.Exists("not-found", true, false, NullLogger.Instance, CancellationToken.None);

            // Assert
            Assert.False(exist);
        }