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()); }
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); }
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())); }
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); }
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()); }
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)); }
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); }
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()); }
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); }
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); }
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))); }
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); }
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()); }
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); }
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()); } }
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()); }
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); }
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()); }
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); }
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()); }
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()); }
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); }
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()); }
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); }
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()); }
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); } }
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); }
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()); }
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); }