public void NonExistentNamespaceThrowsException() { var testNamespaces = ReservedNamespaceServiceTestData.GetTestNamespaces(); var testPackageRegistrations = ReservedNamespaceServiceTestData.GetRegistrations(); var existingReg = testPackageRegistrations.First(); var service = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces, packageRegistrations: testPackageRegistrations); Assert.Throws <InvalidOperationException>(() => service.RemovePackageRegistrationFromNamespace("Non.Existent.Namespace.", existingReg)); }
public async Task NonExistentNamespaceThrowsException() { var testNamespaces = ReservedNamespaceServiceTestData.GetTestNamespaces(); var testPackageRegistrations = ReservedNamespaceServiceTestData.GetRegistrations(); var existingReg = testPackageRegistrations.First(); var service = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces, packageRegistrations: testPackageRegistrations); await Assert.ThrowsAsync <InvalidOperationException>(async() => await service.AddPackageRegistrationToNamespaceAsync("Non.Existent.Namespace.", existingReg)); }
public async Task AddingOwnerToAbsoluteNamespaceMarksOnlyAbsoluteRegistrationsVerified() { var testNamespaces = ReservedNamespaceServiceTestData.GetTestNamespaces(); var existingNamespace = new ReservedNamespace("Microsoft", isSharedNamespace: false, isPrefix: false); testNamespaces.Add(existingNamespace); var testUsers = ReservedNamespaceServiceTestData.GetTestUsers(); var owner1 = testUsers.First(u => u.Username == "test1"); var registrations = ReservedNamespaceServiceTestData.GetRegistrations(); var pr1 = registrations.ToList().FirstOrDefault(pr => (pr.Id == "Microsoft.Package1")); var pr2 = registrations.ToList().FirstOrDefault(pr => (pr.Id == "Microsoft.Package2")); var pr3 = registrations.ToList().FirstOrDefault(pr => (pr.Id == "Microsoft.AspNet.Package2")); var pr4 = new PackageRegistration { Id = "Microsoft", IsVerified = false }; registrations.Add(pr4); pr1.Owners.Add(owner1); pr2.Owners.Add(owner1); pr3.Owners.Add(owner1); pr4.Owners.Add(owner1); var service = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces, users: testUsers, packageRegistrations: registrations); Assert.True(existingNamespace.PackageRegistrations.Count() == 0); await service.AddOwnerToReservedNamespaceAsync(existingNamespace.Value, owner1.Username); service .MockReservedNamespaceRepository .Verify(x => x.CommitChangesAsync()); service .MockPackageService .Verify(p => p.UpdatePackageVerifiedStatusAsync( It.IsAny <IReadOnlyCollection <PackageRegistration> >(), It.IsAny <bool>()), Times.Once); Assert.True(existingNamespace.Owners.Contains(owner1)); // Only Microsoft.Package1 should match the namespace Assert.True(existingNamespace.PackageRegistrations.Count() == 1); existingNamespace .PackageRegistrations .ToList() .ForEach(pr => { Assert.True(pr.IsVerified); Assert.True(pr.Id == pr4.Id); }); Assert.False(pr1.IsVerified); Assert.False(pr3.IsVerified); Assert.False(pr2.IsVerified); }
public void PackageRegistrationIsAddedSuccessfully() { var testNamespaces = ReservedNamespaceServiceTestData.GetTestNamespaces(); var existingNamespace = testNamespaces.First(); var testPackageRegistrations = ReservedNamespaceServiceTestData.GetRegistrations(); var existingReg = testPackageRegistrations.First(); var service = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces, packageRegistrations: testPackageRegistrations); service.AddPackageRegistrationToNamespace(existingNamespace.Value, existingReg); Assert.True(existingNamespace.PackageRegistrations.Contains(existingReg)); }
public void PackageRegistrationIsRemovedFromNamespaceSuccessfully() { var testNamespaces = ReservedNamespaceServiceTestData.GetTestNamespaces(); var existingNamespace = testNamespaces.First(); var testPackageRegistrations = ReservedNamespaceServiceTestData.GetRegistrations(); var existingReg = testPackageRegistrations.First(); existingNamespace.PackageRegistrations.Add(existingReg); var service = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces, packageRegistrations: testPackageRegistrations); service.RemovePackageRegistrationFromNamespace(existingNamespace.Value, existingReg); Assert.False(existingNamespace.PackageRegistrations.Contains(existingReg)); }
public void CommitChangesIsNotExecuted() { var testNamespaces = ReservedNamespaceServiceTestData.GetTestNamespaces(); var existingNamespace = testNamespaces.First(); var testPackageRegistrations = ReservedNamespaceServiceTestData.GetRegistrations(); var existingReg = testPackageRegistrations.First(); var service = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces, packageRegistrations: testPackageRegistrations); service.AddPackageRegistrationToNamespace(existingNamespace.Value, existingReg); service .MockReservedNamespaceRepository .Verify(x => x.CommitChangesAsync(), Times.Never); }
public async Task CommitChangesIsNotExecuted() { var testNamespaces = ReservedNamespaceServiceTestData.GetTestNamespaces(); var existingNamespace = testNamespaces.First(); var testPackageRegistrations = ReservedNamespaceServiceTestData.GetRegistrations(); var existingReg = testPackageRegistrations.First(); var service = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces, packageRegistrations: testPackageRegistrations); await service.AddPackageRegistrationToNamespaceAsync(existingNamespace.Value, existingReg, commitChanges : false); service .MockReservedNamespaceRepository .Verify(x => x.CommitChangesAsync(), Times.Never); Assert.True(existingNamespace.PackageRegistrations.Contains(existingReg)); }
public async Task PackageRegistrationIsAddedWithCommitSuccessfully() { var testNamespaces = ReservedNamespaceServiceTestData.GetTestNamespaces(); var existingNamespace = testNamespaces.First(); var testPackageRegistrations = ReservedNamespaceServiceTestData.GetRegistrations(); var existingReg = testPackageRegistrations.First(); var service = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces, packageRegistrations: testPackageRegistrations); await service.AddPackageRegistrationToNamespaceAsync(existingNamespace.Value, existingReg, commitChanges : true); service .MockReservedNamespaceRepository .Verify(x => x.CommitChangesAsync()); Assert.True(existingNamespace.PackageRegistrations.Contains(existingReg)); }
public async Task DeletingOwnerFromNamespaceMarksRegistrationsUnverified() { var testNamespaces = ReservedNamespaceServiceTestData.GetTestNamespaces(); var prefix = "microsoft."; var existingNamespace = testNamespaces.FirstOrDefault(rn => rn.Value.Equals(prefix, StringComparison.OrdinalIgnoreCase)); var testUsers = ReservedNamespaceServiceTestData.GetTestUsers(); var owner1 = testUsers.First(u => u.Username == "test1"); var owner2 = testUsers.First(u => u.Username == "test2"); var registrations = ReservedNamespaceServiceTestData.GetRegistrations(); var pr1 = registrations.ToList().FirstOrDefault(pr => (pr.Id == "Microsoft.Package1")); var pr2 = registrations.ToList().FirstOrDefault(pr => (pr.Id == "Microsoft.Package2")); var pr3 = registrations.ToList().FirstOrDefault(pr => (pr.Id == "Microsoft.AspNet.Package2")); pr1.Owners.Add(owner1); pr2.Owners.Add(owner1); pr3.Owners.Add(owner2); pr1.IsVerified = true; pr2.IsVerified = true; pr3.IsVerified = true; existingNamespace.Owners.Add(owner1); existingNamespace.PackageRegistrations.Add(pr1); existingNamespace.PackageRegistrations.Add(pr2); var service = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces, users: testUsers, packageRegistrations: registrations); Assert.True(existingNamespace.PackageRegistrations.Count == 2); await service.DeleteOwnerFromReservedNamespaceAsync(prefix, owner1.Username); service .MockReservedNamespaceRepository .Verify(x => x.CommitChangesAsync()); service .MockPackageService .Verify(p => p.UpdatePackageVerifiedStatusAsync( It.IsAny <IReadOnlyCollection <PackageRegistration> >(), It.IsAny <bool>()), Times.Once); Assert.False(existingNamespace.Owners.Contains(owner1)); Assert.True(existingNamespace.PackageRegistrations.Count == 0); Assert.False(pr1.IsVerified); Assert.False(pr2.IsVerified); Assert.True(pr3.IsVerified); }
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 NullUserThrowsException() { var service = CreateService(); var testPackageRegistrations = ReservedNamespaceServiceTestData.GetRegistrations(); await Assert.ThrowsAsync <ArgumentNullException>(async() => await service.AddPackageOwnerAsync(packageRegistration: testPackageRegistrations.First(), user: null)); }