示例#1
0
        public async Task TestGetSnapReleasesAsync_SnapHttpFeed(bool versionIsNull)
        {
            var snapApp = _baseFixturePackaging.BuildSnapApp();

            if (versionIsNull)
            {
                snapApp.Version = null;
            }

            var snapChannel = snapApp.Channels.First(x => x.UpdateFeed is SnapHttpFeed);

            snapApp.SetCurrentChannel(snapChannel.Name);

            var snapPackageManagerHttpFeed = new SnapPackageManagerNugetHttpFeed
            {
                ApiKey          = "apikey",
                ProtocolVersion = NuGetProtocolVersion.V2,
                Password        = "******",
                Username        = "******",
                Source          = new Uri("https://finter.no")
            };

            const string applicationId = "my-application-id";

            _snapHttpClientMock.Setup(x => x.GetStreamAsync(It.IsAny <Uri>(), It.IsAny <Dictionary <string, string> >())).ReturnsAsync(() =>
            {
                var jsonStr   = JsonConvert.SerializeObject(snapPackageManagerHttpFeed);
                var jsonBytes = Encoding.UTF8.GetBytes(jsonStr);
                return(new MemoryStream(jsonBytes));
            }).Callback((Uri uri, IDictionary <string, string> headers) =>
            {
                Assert.Equal(uri, snapPackageManagerHttpFeed.Source);
                Assert.NotNull(headers);
                Assert.Equal(4, headers.Count);
                Assert.Collection(headers, pair => Assert.Equal("X-Snapx-App-Id", snapApp.Id));
                Assert.Collection(headers, pair => Assert.Equal("X-Snapx-Channel", snapChannel.Name));
                Assert.Collection(headers, pair => Assert.Equal("X-Snapx-Application-Id", applicationId));
                if (versionIsNull)
                {
                    Assert.Collection(headers, pair => Assert.Null("X-Snapx-Application-Version"));
                }
                else
                {
                    Assert.Collection(headers, pair => Assert.Equal("X-Snapx-Application-Version", snapApp.Version.ToNormalizedString()));
                }
            });

            var snapUpdateManager = BuildUpdateManager(_baseFixturePackaging.WorkingDirectory, snapApp, _nugetServiceMock.Object,
                                                       snapHttpClient: _snapHttpClientMock.Object, snapOs: _snapOs, applicationId: applicationId);

            var snapReleases = await snapUpdateManager.GetSnapReleasesAsync(default);
示例#2
0
 internal SnapNugetFeed([NotNull] SnapPackageManagerNugetHttpFeed httpFeed) : this(new SnapNugetFeed
 {
     ProtocolVersion = httpFeed.ProtocolVersion,
     ApiKey = httpFeed.ApiKey,
     Username = httpFeed.Username,
     Password = httpFeed.Password,
     Source = httpFeed.Source
 })
 {
     if (httpFeed == null)
     {
         throw new ArgumentNullException(nameof(httpFeed));
     }
 }