public async Task DeletingNamespaceClearsVerifiedFlagOnPackage(bool isSharedNamespace) { var namespaces = ReservedNamespaceServiceTestData.GetTestNamespaces(); var registrations = ReservedNamespaceServiceTestData.GetRegistrations(); var msPrefix = namespaces.First(); msPrefix.IsSharedNamespace = isSharedNamespace; msPrefix.PackageRegistrations = registrations.Where(x => x.Id.StartsWith(msPrefix.Value)).ToList(); msPrefix.PackageRegistrations.ToList().ForEach(x => x.ReservedNamespaces.Add(msPrefix)); var service = new TestableReservedNamespaceService(reservedNamespaces: namespaces, packageRegistrations: registrations); await service.DeleteReservedNamespaceAsync(msPrefix.Value); var registrationsShouldUpdate = msPrefix.PackageRegistrations; service .MockReservedNamespaceRepository .Verify( x => x.DeleteOnCommit( It.Is <ReservedNamespace>( rn => rn.Value == msPrefix.Value && rn.IsPrefix == msPrefix.IsPrefix && rn.IsSharedNamespace == msPrefix.IsSharedNamespace))); service .MockReservedNamespaceRepository .Verify(x => x.CommitChangesAsync()); service .MockPackageService .Verify( p => p.UpdatePackageVerifiedStatusAsync( It.Is <IReadOnlyCollection <PackageRegistration> >( list => list.Count() == registrationsShouldUpdate.Count() && list.Any(pr => registrationsShouldUpdate.Any(ru => ru.Id == pr.Id))), false), Times.Once); msPrefix.PackageRegistrations.ToList().ForEach(rn => Assert.False(rn.IsVerified)); }
public async Task VanillaReservedNamespaceIsDeletedCorrectly() { var testNamespaces = ReservedNamespaceServiceTestData.GetTestNamespaces(); var existingNamespace = testNamespaces.First(); var service = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces); await service.DeleteReservedNamespaceAsync(existingNamespace.Value); service.MockReservedNamespaceRepository.Verify( x => x.DeleteOnCommit( It.Is <ReservedNamespace>( rn => rn.Value == existingNamespace.Value && rn.IsPrefix == existingNamespace.IsPrefix && rn.IsSharedNamespace == existingNamespace.IsSharedNamespace))); service .MockReservedNamespaceRepository .Verify(x => x.CommitChangesAsync()); service .MockPackageService .Verify(p => p.UpdatePackageVerifiedStatusAsync(It.IsAny <IReadOnlyCollection <PackageRegistration> >(), It.IsAny <bool>()), Times.Never); }
public async Task NonexistentNamespaceThrowsException() { var testNamespaces = ReservedNamespaceServiceTestData.GetTestNamespaces(); var service = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces); await Assert.ThrowsAsync <InvalidOperationException>(async() => await service.DeleteReservedNamespaceAsync("Nonexistent.Namespace.")); }
public async Task InvalidNamespaceThrowsException(string value) { var service = new TestableReservedNamespaceService(); await Assert.ThrowsAsync <ArgumentException>(async() => await service.DeleteReservedNamespaceAsync(value)); }