コード例 #1
0
            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));
            }
コード例 #2
0
            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));
            }
コード例 #3
0
            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);
            }
コード例 #4
0
            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));
            }
コード例 #5
0
            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));
            }
コード例 #6
0
            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);
            }
コード例 #7
0
            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));
            }
コード例 #8
0
            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));
            }
コード例 #9
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);
            }
コード例 #10
0
            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));
            }
コード例 #11
0
 public async Task NullUserThrowsException()
 {
     var service = CreateService();
     var testPackageRegistrations = ReservedNamespaceServiceTestData.GetRegistrations();
     await Assert.ThrowsAsync <ArgumentNullException>(async() => await service.AddPackageOwnerAsync(packageRegistration: testPackageRegistrations.First(), user: null));
 }