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