Пример #1
0
        public void GetPackagesSpecifiedIdAndVersionWhenExists()
        {
            packageRepo.Setup(r => r.FindPackage(It.IsAny <string>(), It.IsAny <NuGetVersion>())).Returns(dummy1_0_0).Verifiable();
            var result = browser.Get("/api/v2/Packages(Id='dummy',Version='1.0.0')", with =>
            {
                with.HttpRequest();
            }).Result;

            Assert.Equal(HttpStatusCode.OK, result.StatusCode);
            Assert.Equal("application/atom+xml", result.ContentType);
            packageRepo.Verify(r => r.FindPackage("dummy", NuGetVersion.Parse("1.0.0")), Times.Exactly(1));
            var entries    = XmlFeedHelper.ParsePage(result.BodyAsXml());
            var dummyEntry = Assert.Single(entries);

            AssertDummyEntry(dummyEntry);
        }
Пример #2
0
        [Trait("Category", "integration")] // because it uses external nupkg files
        public async Task GetV2FindPackagesById()
        {
            InitializeClient(MainIndex);
            var packageResource = await _sourceRepository.GetResourceAsync <PackageUpdateResource>();

            await packageResource.Push(TestResources.GetNupkgBagetTest1(),
                                       null, 5, false, GetApiKey, GetApiKey, false, logger);

            var response = await _httpClient.GetAsync("/api/v2/FindPackagesById()?id=liget-test1");

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

            var entries = XmlFeedHelper.ParsePage(XDocument.Parse(responseText));
            var entry   = Assert.Single(entries);

            AssertLiGetTestEntry(entry);
        }
Пример #3
0
        public void FindPackageByIdWhenEmptyRepository(string queryName)
        {
            packageRepo.Setup(r => r.FindPackagesById(It.IsAny <string>(), It.IsAny <ClientCompatibility>()))
            .Returns(new List <HostedPackage>()).Verifiable();
            var result = browser.Get("/api/v2/FindPackagesById()", with =>
            {
                with.Query("id", queryName);
                with.HttpRequest();
            }).Result;

            Assert.Equal(HttpStatusCode.OK, result.StatusCode);
            packageRepo.Verify(r => r.FindPackagesById("aaabbb", It.IsAny <ClientCompatibility>()), Times.Exactly(1));
            Assert.Equal("application/atom+xml", result.ContentType);
            var entries = XmlFeedHelper.ParsePage(result.BodyAsXml());

            Assert.Empty(entries);
            Assert.Contains("http://testhost/api/v2", result.Body.AsString());
        }
Пример #4
0
        public async Task FindPackageByIdWhenEmptyRepository(string queryName)
        {
            packageRepo.Setup(r => r.FindAsync(It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>()))
            .ReturnsAsync(new List <Package>()).Verifiable();
            using (TestServer server = serverBuilder.Build())
            {
                var httpClient = server.CreateClient();
                var result     = await httpClient.GetAsync("/api/v2/FindPackagesById()?id=" + queryName);

                Assert.Equal(HttpStatusCode.OK, result.StatusCode);
                packageRepo.Verify(r => r.FindAsync("aaabbb", false, true), Times.Exactly(1));
                Assert.Equal("application/atom+xml", result.Content.Headers.ContentType.MediaType);
                var responseText = await result.Content.ReadAsStringAsync();

                var entries = XmlFeedHelper.ParsePage(XDocument.Parse(responseText));
                Assert.Empty(entries);
                Assert.Contains("http://localhost/api/v2", responseText);
            }
        }
Пример #5
0
        public async Task GetPackagesSpecifiedIdAndVersionWhenExists(string index)
        {
            packageRepo.Setup(r => r.FindOrNullAsync(It.IsAny <PackageIdentity>(), It.IsAny <bool>(), It.IsAny <bool>()))
            .ReturnsAsync(dummy1_0_0).Verifiable();
            using (TestServer server = serverBuilder.Build())
            {
                var httpClient = server.CreateClient();
                var result     = await httpClient.GetAsync(index + "/Packages(Id='dummy',Version='1.0.0')");

                Assert.Equal(HttpStatusCode.OK, result.StatusCode);
                Assert.Equal("application/atom+xml", result.Content.Headers.ContentType.MediaType);
                packageRepo.Verify(r => r.FindOrNullAsync(new PackageIdentity("dummy", NuGetVersion.Parse("1.0.0")), false, true), Times.Exactly(1));
                var responseText = await result.Content.ReadAsStringAsync();

                var entries    = XmlFeedHelper.ParsePage(XDocument.Parse(responseText));
                var dummyEntry = Assert.Single(entries);
                AssertDummyEntry(dummyEntry);
            }
        }
Пример #6
0
        public void GetFindPackagesByIdWhen3Exist()
        {
            var packagesInDropFolder = new Dictionary <string, LocalPackageInfo>
            {
                { "test.1.11.nupkg", PackageHelper.CreatePackage(tmpDir.Path, "test", "1.11") },
                { "test.1.9.nupkg", PackageHelper.CreatePackage(tmpDir.Path, "test", "1.9") },
                { "test.2.0.0-0test.nupkg", PackageHelper.CreatePackage(tmpDir.Path, "test", "2.0.0-0test") },
            };
            var result = browser.Get("/api/v2/FindPackagesById()?id='test'", with =>
            {
                with.HttpRequest();
            }).Result;

            Assert.Equal(HttpStatusCode.OK, result.StatusCode);
            Assert.Equal("application/atom+xml", result.ContentType);
            var entries = XmlFeedHelper.ParsePage(result.BodyAsXml()).ToList();

            Assert.Equal(3, entries.Count);
            Assert.Equal(new [] { "1.11.0", "1.9.0", "2.0.0-0test" }, entries.Select(e => e.Version.OriginalVersion).OrderBy(v => v));
        }
Пример #7
0
        public void GetPackagesSpecifiedIdAndVersionWhenExists()
        {
            var packagesInDropFolder = new Dictionary <string, LocalPackageInfo>
            {
                { "test.1.11.nupkg", PackageHelper.CreatePackage(tmpDir.Path, "test", "1.11") },
                { "test.1.9.nupkg", PackageHelper.CreatePackage(tmpDir.Path, "test", "1.9") },
                { "test.2.0.0-0test.nupkg", PackageHelper.CreatePackage(tmpDir.Path, "test", "2.0.0-0test") },
            };
            var result = browser.Get("/api/v2/Packages(Id='test',Version='2.0.0-0test')", with =>
            {
                with.HttpRequest();
            }).Result;

            Assert.Equal(HttpStatusCode.OK, result.StatusCode);
            Assert.Equal("application/atom+xml", result.ContentType);
            var entries = XmlFeedHelper.ParsePage(result.BodyAsXml());
            var entry   = Assert.Single(entries);

            Assert.Equal("2.0.0-0test", entry.Version.OriginalVersion);
            Assert.Equal("Test Author", Assert.Single(entry.Authors));
            Assert.Equal("test", entry.Id);
        }
Пример #8
0
        public async Task FindPackageByIdWhenOneFound(string index)
        {
            packageRepo.Setup(r => r.FindAsync(It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>()))
            .ReturnsAsync(new List <Package>()
            {
                dummy1_0_0
            }).Verifiable();
            using (TestServer server = serverBuilder.Build())
            {
                var httpClient = server.CreateClient();
                var result     = await httpClient.GetAsync(index + "/FindPackagesById()?id=dummy");

                Assert.Equal(HttpStatusCode.OK, result.StatusCode);
                packageRepo.Verify(r => r.FindAsync("dummy", false, true), Times.Exactly(1));
                Assert.Equal("application/atom+xml", result.Content.Headers.ContentType.MediaType);
                var responseText = await result.Content.ReadAsStringAsync();

                var entries    = XmlFeedHelper.ParsePage(XDocument.Parse(responseText));
                var dummyEntry = Assert.Single(entries);
                AssertDummyEntry(dummyEntry);
                Assert.Contains("http://localhost" + index, responseText);
            }
        }