public async Task GetByStateNoResults() { // Arrange var statusService = new PackageMonitoringStatusService( new MemoryStorageFactory(), new Mock <ILogger <PackageMonitoringStatusService> >().Object); // Act & Assert foreach (var state in Enum.GetValues(typeof(PackageState)).Cast <PackageState>()) { var statuses = await statusService.GetAsync(state, CancellationToken.None); Assert.Empty(statuses); } }
public async Task GetByStateNoResults() { // Arrange var statusService = new PackageMonitoringStatusService( new MemoryStorageFactory(), new Mock <ILogger <PackageMonitoringStatusService> >().Object); // Act var validStatuses = await statusService.GetAsync(PackageState.Valid, CancellationToken.None); var invalidStatuses = await statusService.GetAsync(PackageState.Invalid, CancellationToken.None); // Assert Assert.Empty(validStatuses); Assert.Empty(invalidStatuses); }
public async Task GetByPackageNoResults() { // Arrange var statusService = new PackageMonitoringStatusService( new MemoryStorageFactory(), new Mock <ILogger <PackageMonitoringStatusService> >().Object); var desiredPackageId = "missingpackage"; var desiredPackageVersion = "9.1.1"; // Act var status = await statusService.GetAsync(new FeedPackageIdentity(desiredPackageId, desiredPackageVersion), CancellationToken.None); // Assert Assert.Null(status); }
public async Task UpdateDeletesOldStatuses() { // Arrange var feedPackageIdentity = new FeedPackageIdentity("howdy", "3.4.6"); var packageFileName = GetPackageFileName(feedPackageIdentity.Id, feedPackageIdentity.Version); var packageValidationResult = new PackageValidationResult( new PackageIdentity(feedPackageIdentity.Id, new NuGetVersion(feedPackageIdentity.Version)), null, null, Enumerable.Empty <AggregateValidationResult>()); var status = new PackageMonitoringStatus(packageValidationResult); var storageFactory = new MemoryStorageFactory(); var statusService = new PackageMonitoringStatusService( storageFactory, new Mock <ILogger <PackageMonitoringStatusService> >().Object); foreach (var state in Enum.GetNames(typeof(PackageState))) { var storage = storageFactory.Create(state.ToLowerInvariant()); await storage.SaveAsync(storage.ResolveUri(packageFileName), new StringStorageContent("{}"), CancellationToken.None); Assert.True(storage.Exists(packageFileName)); } // Act await statusService.UpdateAsync(status, CancellationToken.None); // Assert foreach (var state in Enum.GetNames(typeof(PackageState))) { var storage = storageFactory.Create(state.ToLowerInvariant()); if ((PackageState)Enum.Parse(typeof(PackageState), state) == status.State) { Assert.True(storage.Exists(packageFileName)); } else { Assert.False(storage.Exists(packageFileName)); } } AssertStatus(status, await statusService.GetAsync(feedPackageIdentity, CancellationToken.None)); }
public async Task GetByState() { // Arrange var statusService = new PackageMonitoringStatusService( new MemoryStorageFactory(), new Mock <ILogger <PackageMonitoringStatusService> >().Object); var expectedValidStatuses = new PackageMonitoringStatus[] { CreateStatusWithPackageValidationResult("newtonsoft.json", "9.0.2", new ValidationResult[] { CreateValidationResult(TestResult.Pass, null) }), CreateStatusWithPackageValidationResult("a.b", "1.2.3", new ValidationResult[] { CreateValidationResult(TestResult.Pass, null) }), CreateStatusWithPackageValidationResult("newtonsoft.json", "6.0.8", new ValidationResult[] { CreateValidationResult(TestResult.Skip, null) }), CreateStatusWithPackageValidationResult("a.b", "0.8.9", new ValidationResult[] { CreateValidationResult(TestResult.Skip, null) }) }; var expectedInvalidStatuses = new PackageMonitoringStatus[] { CreateStatusWithPackageValidationResult("jQuery", "3.1.2", new ValidationResult[] { CreateValidationResult(TestResult.Fail, new ValidationException("malarky!")) }), CreateStatusWithPackageValidationResult("EntityFramework", "6.1.2", new ValidationResult[] { CreateValidationResult(TestResult.Fail, new ValidationException("absurd!")) }), CreateStatusWithException("NUnit", "3.6.1") }; foreach (var expectedValidStatus in expectedValidStatuses) { await statusService.UpdateAsync(expectedValidStatus, CancellationToken.None); } foreach (var expectedInvalidStatus in expectedInvalidStatuses) { await statusService.UpdateAsync(expectedInvalidStatus, CancellationToken.None); } // Act var validStatuses = await statusService.GetAsync(PackageState.Valid, CancellationToken.None); var invalidStatuses = await statusService.GetAsync(PackageState.Invalid, CancellationToken.None); // Assert AssertAll( expectedValidStatuses.OrderBy(s => s.Package.Id).ThenBy(s => s.Package.Version), validStatuses.OrderBy(s => s.Package.Id).ThenBy(s => s.Package.Version), AssertStatus); AssertAll( expectedInvalidStatuses.OrderBy(s => s.Package.Id).ThenBy(s => s.Package.Version), invalidStatuses.OrderBy(s => s.Package.Id).ThenBy(s => s.Package.Version), AssertStatus); }
public async Task GetByPackageWithPackageValidationResult() { // Arrange var statusService = new PackageMonitoringStatusService( new MemoryStorageFactory(), new Mock <ILogger <PackageMonitoringStatusService> >().Object); var undesiredStatuses = new PackageMonitoringStatus[] { PackageMonitoringStatusTestUtility.CreateStatusWithPackageValidationResult( "json.newtonsoft", "1.0.9", TestResult.Pass), PackageMonitoringStatusTestUtility.CreateStatusWithPackageValidationResult( "json.newtonsoft.json", "1.0.9.1", TestResult.Fail), PackageMonitoringStatusTestUtility.CreateStatusWithPackageValidationResult( "j.n.j", "1.9.1", TestResult.Skip), PackageMonitoringStatusTestUtility.CreateStatusWithPackageValidationResult( "newtonsoft.json", "9.0.2", TestResult.Pass) }; var desiredPackageId = "newtonsoft.json"; var desiredPackageVersion = "9.0.1"; var desiredStatus = PackageMonitoringStatusTestUtility.CreateStatusWithPackageValidationResult( desiredPackageId, desiredPackageVersion, TestResult.Pass); await statusService.UpdateAsync(desiredStatus, CancellationToken.None); await Task.WhenAll(undesiredStatuses.Select(s => statusService.UpdateAsync(s, CancellationToken.None))); // Act var status = await statusService.GetAsync(new FeedPackageIdentity(desiredPackageId, desiredPackageVersion), CancellationToken.None); // Assert PackageMonitoringStatusTestUtility.AssertStatus(desiredStatus, status); }