예제 #1
0
            public async Task DeleteOwnerFromNamespaceSuccessfully()
            {
                var testNamespaces    = ReservedNamespaceServiceTestData.GetTestNamespaces();
                var prefix            = "microsoft.";
                var existingNamespace = testNamespaces.FirstOrDefault(rn => rn.Value.Equals(prefix, StringComparison.OrdinalIgnoreCase));
                var testUsers         = ReservedNamespaceServiceTestData.GetTestUsers();
                var owner             = testUsers.First();

                existingNamespace.Owners.Add(owner);
                var service = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces, users: testUsers);

                await service.DeleteOwnerFromReservedNamespaceAsync(prefix, owner.Username);

                service
                .MockReservedNamespaceRepository
                .Verify(x => x.CommitChangesAsync());

                service
                .MockPackageService
                .Verify(p => p.UpdatePackageVerifiedStatusAsync(
                            It.IsAny <IReadOnlyCollection <PackageRegistration> >(), It.IsAny <bool>()),
                        Times.Never);

                Assert.False(existingNamespace.Owners.Contains(owner));
            }
예제 #2
0
            public async Task DeletingInvalidOwnerFromNamespaceThrowsException(string username)
            {
                var testNamespaces    = ReservedNamespaceServiceTestData.GetTestNamespaces();
                var existingNamespace = testNamespaces.First();
                var service           = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces);

                await Assert.ThrowsAsync <ArgumentException>(async() => await service.DeleteOwnerFromReservedNamespaceAsync(existingNamespace.Value, username));
            }
예제 #3
0
            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);
            }
예제 #4
0
            public async Task DeletingNonOwnerFromNamespaceThrowsException()
            {
                var testNamespaces    = ReservedNamespaceServiceTestData.GetTestNamespaces();
                var prefix            = "microsoft.";
                var existingNamespace = testNamespaces.FirstOrDefault(rn => rn.Value.Equals(prefix, StringComparison.OrdinalIgnoreCase));
                var testUsers         = ReservedNamespaceServiceTestData.GetTestUsers();
                var user1             = testUsers.First(u => u.Username == "test1");
                var user2             = testUsers.First(u => u.Username == "test2");

                existingNamespace.Owners.Add(user1);
                var service = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces, users: testUsers);

                await Assert.ThrowsAsync <InvalidOperationException>(async() => await service.DeleteOwnerFromReservedNamespaceAsync(prefix, user2.Username));
            }
예제 #5
0
            public async Task DeletingNonExistentUserFromNamespaceThrowsException()
            {
                var testNamespaces    = ReservedNamespaceServiceTestData.GetTestNamespaces();
                var existingNamespace = testNamespaces.First();
                var testUsers         = ReservedNamespaceServiceTestData.GetTestUsers();
                var service           = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces, users: testUsers);

                await Assert.ThrowsAsync <InvalidOperationException>(async() => await service.DeleteOwnerFromReservedNamespaceAsync(existingNamespace.Value, "NonExistentUser"));
            }
예제 #6
0
            public async Task NonExistentNamespaceThrowsException()
            {
                var testNamespaces = ReservedNamespaceServiceTestData.GetTestNamespaces();
                var testUsers      = ReservedNamespaceServiceTestData.GetTestUsers();
                var existingUser   = testUsers.First();
                var service        = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces, users: testUsers);

                await Assert.ThrowsAsync <InvalidOperationException>(async() => await service.DeleteOwnerFromReservedNamespaceAsync("Non.Existent.Namespace.", existingUser.Username));
            }
예제 #7
0
            public async Task NullNamespaceThrowsException(string value)
            {
                var service = new TestableReservedNamespaceService();

                await Assert.ThrowsAsync <ArgumentException>(async() => await service.DeleteOwnerFromReservedNamespaceAsync(value, "test1"));
            }