Exemple #1
0
        public async Task RegistrationIndexCatalogEntryShouldContainDependencyGroupsWhenPackageDep()
        {
            var pkgService = new Mock <IPackageService>(MockBehavior.Strict);

            pkgService.Setup(p => p.FindAsync(It.IsAny <string>(), false, true)).ReturnsAsync(new List <Package>()
            {
                new Package()
                {
                    Id = "abc", VersionString = "1.2.3", Dependencies = new System.Collections.Generic.List <PackageDependency>()
                    {
                        new PackageDependency()
                        {
                            TargetFramework = "netstandard2.0", Id = "dep1"
                        }                                                                       // a package dependency
                    }
                }
            });
            using (TestServer server = TestServerBuilder.Create()
                                       .TraceToTestOutputHelper(Helper, LogLevel.Error)
                                       .WithMock(typeof(IPackageService), pkgService)
                                       .Build())
            {
                var services = server.Host.Services;
                Assert.Equal(pkgService.Object, services.GetRequiredService <IPackageService>());
                // https://docs.microsoft.com/en-us/nuget/api/registration-base-url-resource#registration-pages-and-leaves
                var response = await server.CreateClient().GetAsync(string.Format(RegistrationIndexUrlFormatString, "abc"));

                Assert.Equal(System.Net.HttpStatusCode.OK, response.StatusCode);
                var jsonString = await response.Content.ReadAsStringAsync();

                var actual   = JObject.Parse(jsonString);
                var groups   = actual["items"][0]["items"][0]["catalogEntry"]["dependencyGroups"];
                var expected = new JArray(
                    new JObject {
                    { "@id", $"https://api.nuget.org/v3/catalog0/data/2015.02.01.06.24.15/abc.1.2.3.json#dependencygroup/.netstandard2.0" },
                    { "@type", "PackageDependencyGroup" },
                    { "targetFramework", "netstandard2.0" },
                    { "dependencies", new JArray(new JObject {
                            { "@id", $"https://api.nuget.org/v3/catalog0/data/2015.02.01.06.24.15/abc.1.2.3.json#dependencygroup/.netstandard2.0/dep1" },
                            { "@type", "PackageDependency" },
                            { "id", "dep1" },
                            { "range", null },
                            { "registration", "http://localhost/v3/registration/dep1/index.json" }
                        }) }
                }
                    );
                string message = "Actual part of response: \n" + groups.ToString();
                Assert.True(JToken.DeepEquals(expected, groups), message);
            }
        }
Exemple #2
0
        public async Task RegistrationIndexCatalogEntryShouldContainDependencyGroups()
        {
            var pkgService = new Mock <ICacheService>(MockBehavior.Strict);
            Mock <IPackageSearchMetadata> abcPackage = new Mock <IPackageSearchMetadata>();

            abcPackage.SetupGet(a => a.Identity).Returns(new NuGet.Packaging.Core.PackageIdentity("abc", NuGetVersion.Parse("1.2.3")));
            abcPackage.SetupGet(a => a.DependencySets).Returns(new PackageDependencyGroup[1] {
                new PackageDependencyGroup(NuGetFramework.Parse("netstandard2.0"), new NuGet.Packaging.Core.PackageDependency[0])
            });
            pkgService.Setup(p => p.FindUpstreamMetadataAsync(It.IsAny <string>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new List <IPackageSearchMetadata>()
            {
                abcPackage.Object
            });
            using (TestServer server = TestServerBuilder.Create()
                                       .TraceToTestOutputHelper(Helper, LogLevel.Error)
                                       .WithMock(typeof(ICacheService), pkgService)
                                       .Build())
            {
                var services = server.Host.Services;
                Assert.Equal(pkgService.Object, services.GetRequiredService <ICacheService>());
                // https://docs.microsoft.com/en-us/nuget/api/registration-base-url-resource#registration-pages-and-leaves
                var response = await server.CreateClient().GetAsync(string.Format(RegistrationIndexUrlFormatString, "abc"));

                Assert.Equal(System.Net.HttpStatusCode.OK, response.StatusCode);
                var jsonString = await response.Content.ReadAsStringAsync();

                var actual   = JObject.Parse(jsonString);
                var groups   = actual["items"][0]["items"][0]["catalogEntry"]["dependencyGroups"];
                var expected = new JArray(
                    new JObject {
                    { "@id", $"https://api.nuget.org/v3/catalog0/data/2015.02.01.06.24.15/abc.1.2.3.json#dependencygroup/.netstandard2.0" },
                    { "@type", "PackageDependencyGroup" },
                    { "targetFramework", "netstandard2.0" },
                    { "dependencies", null }
                }
                    );
                string message = "Actual part of response: \n" + groups.ToString();
                Assert.True(JToken.DeepEquals(expected, groups), message);
            }
        }
        public HostFixture()
        {
            Server = TestServerBuilder.Create().WithStartup <Startup>().Build();

            _connectionString = Server.Host.Services.GetService <IConfiguration>().GetSection <ConnectionStrings>();

            Server.Host.ExecuteDbContext <DataBaseContext>(dbContext =>
            {
                dbContext.Database.EnsureDeleted();
                if (dbContext.Database.GetPendingMigrations().Any())
                {
                    dbContext.Database.Migrate();
                }
            });

            Checkpoint.TablesToIgnore = new[]
            {
                "__EFMigrationsHistory",
                nameof(DataBaseContext.Genders)
            };
        }
Exemple #4
0
 public PackageServiceTests(ITestOutputHelper helper)
 {
     Helper = helper ?? throw new ArgumentNullException(nameof(helper));
     server = TestServerBuilder.Create().TraceToTestOutputHelper(Helper, LogLevel.Error).Build();
 }
 public void Reset()
 {
     Server = TestServerBuilder.Create().WithStartup <Startup>().Build();
 }