예제 #1
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));
            }
예제 #2
0
            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);
            }
예제 #3
0
            public async Task NonexistentNamespaceThrowsException()
            {
                var testNamespaces = ReservedNamespaceServiceTestData.GetTestNamespaces();
                var service        = new TestableReservedNamespaceService(reservedNamespaces: testNamespaces);

                await Assert.ThrowsAsync <InvalidOperationException>(async() => await service.DeleteReservedNamespaceAsync("Nonexistent.Namespace."));
            }
예제 #4
0
            public async Task InvalidNamespaceThrowsException(string value)
            {
                var service = new TestableReservedNamespaceService();

                await Assert.ThrowsAsync <ArgumentException>(async() => await service.DeleteReservedNamespaceAsync(value));
            }