コード例 #1
0
        public void Constructor_InitializesProperties()
        {
            var request = new GetPackageVersionsRequest(
                packageSourceRepository: "a",
                packageId: "b");

            Assert.Equal("a", request.PackageSourceRepository);
            Assert.Equal("b", request.PackageId);
        }
コード例 #2
0
        public void JsonSerialization_ReturnsCorrectJson()
        {
            var request = new GetPackageVersionsRequest(
                packageSourceRepository: "a",
                packageId: "b");

            var json = TestUtilities.Serialize(request);

            Assert.Equal("{\"PackageId\":\"b\",\"PackageSourceRepository\":\"a\"}", json);
        }
コード例 #3
0
        private async Task <SortedDictionary <NuGetVersion, PackageInfo> > FindPackagesByIdAsync(
            string id,
            SourceCacheContext cacheContext,
            ILogger logger,
            CancellationToken cancellationToken)
        {
            var uri     = _packageSource.Source;
            var request = new GetPackageVersionsRequest(uri, id);

            try
            {
                var response = await _plugin.Connection.SendRequestAndReceiveResponseAsync <GetPackageVersionsRequest, GetPackageVersionsResponse>(
                    MessageMethod.GetPackageVersions,
                    request,
                    cancellationToken);

                if (response != null)
                {
                    switch (response.ResponseCode)
                    {
                    case MessageResponseCode.Success:
                        var versions = response.Versions.Select(v => NuGetVersion.Parse(v));

                        return(ParsePackageVersions(response.Versions, id, uri));

                    case MessageResponseCode.Error:
                        throw new PluginException(
                                  string.Format(
                                      CultureInfo.CurrentCulture,
                                      Strings.Plugin_FailureQueryingPackageVersions,
                                      id,
                                      _plugin.FilePath));

                    case MessageResponseCode.NotFound:
                    default:
                        break;
                    }
                }

                return(new SortedDictionary <NuGetVersion, PackageInfo>());
            }
            catch (Exception ex)
            {
                var message = string.Format(
                    CultureInfo.CurrentCulture,
                    Strings.Log_FailedToRetrievePackage,
                    id,
                    uri);

                throw new FatalProtocolException(message, ex);
            }
        }