コード例 #1
0
        public async Task SubscribeAsync_DoesNotSaveAuditRecordIfWasAlreadySubscribed()
        {
            // Arrange.
            var service      = new TestSecurityPolicyService();
            var user         = new User("testUser");
            var subscription = service.UserSubscriptions.First();
            await service.SubscribeAsync(user, subscription);

            service.MockAuditingService.ResetCalls();

            // Act.
            await service.SubscribeAsync(user, subscription);

            // Act & Assert.
            service.MockAuditingService.Verify(s => s.SaveAuditRecordAsync(It.IsAny <AuditRecord>()), Times.Never);
        }
コード例 #2
0
        public async Task SubscribeAsync_AddsAllSubscriptionPoliciesWhenHasSameAsDifferentSubscription()
        {
            // Arrange.
            var service           = new TestSecurityPolicyService();
            var user              = new User("testUser");
            var subscriptionName2 = "MockSubscription2";
            var subscription      = service.Mocks.Subscription.Object;

            foreach (var policy in subscription.Policies)
            {
                user.SecurityPolicies.Add(new UserSecurityPolicy(policy.Name, subscriptionName2));
            }

            // Act.
            var subscribed = await service.SubscribeAsync(user, service.UserSubscriptions.First());

            // Act & Assert.
            Assert.True(subscribed);

            var policies = user.SecurityPolicies.ToList();

            Assert.Equal(4, policies.Count);
            Assert.Equal(subscriptionName2, policies[0].Subscription);
            Assert.Equal(subscriptionName2, policies[0].Subscription);
            service.Mocks.VerifySubscriptionPolicies(policies.Skip(2));

            service.Mocks.Subscription.Verify(s => s.OnSubscribeAsync(It.IsAny <UserSecurityPolicySubscriptionContext>()), Times.Once);
            service.MockEntitiesContext.Verify(c => c.SaveChangesAsync(), Times.Once);
        }
コード例 #3
0
        public async Task SubscribeAsync_SavesAuditRecordIfWasNotSubscribed()
        {
            // Arrange.
            var service      = new TestSecurityPolicyService();
            var user         = new User("testUser");
            var subscription = service.Subscriptions.First();

            // Act.
            await service.SubscribeAsync(user, subscription);

            // Act & Assert.
            service.MockAuditingService.Verify(s => s.SaveAuditRecordAsync(It.IsAny <AuditRecord>()), Times.Once);
        }
コード例 #4
0
        public async Task SubscribeAsync_AddsAllSubscriptionPoliciesWhenHasNoneToStart()
        {
            // Arrange.
            var service = new TestSecurityPolicyService();
            var user    = new User("testUser");

            // Act.
            await service.SubscribeAsync(user, service.UserSubscriptions.First());

            // Act & Assert.
            Assert.Equal(2, user.SecurityPolicies.Count);
            service.Mocks.VerifySubscriptionPolicies(user.SecurityPolicies);

            service.Mocks.Subscription.Verify(s => s.OnSubscribeAsync(It.IsAny <UserSecurityPolicySubscriptionContext>()), Times.Once);
            service.MockEntitiesContext.Verify(c => c.SaveChangesAsync(), Times.Once);
        }
コード例 #5
0
        public async Task SubscribeAsync_DoesNotAddSubscriptionPoliciesIfAlreadySubscribed()
        {
            // Arrange.
            var service      = new TestSecurityPolicyService();
            var user         = new User("testUser");
            var subscription = service.Mocks.Subscription.Object;

            foreach (var policy in subscription.Policies)
            {
                user.SecurityPolicies.Add(new UserSecurityPolicy(policy));
            }
            Assert.Equal(2, user.SecurityPolicies.Count);

            // Act.
            await service.SubscribeAsync(user, service.UserSubscriptions.First());

            // Act & Assert.
            Assert.Equal(2, user.SecurityPolicies.Count);
            service.Mocks.VerifySubscriptionPolicies(user.SecurityPolicies);

            service.Mocks.Subscription.Verify(s => s.OnSubscribeAsync(It.IsAny <UserSecurityPolicySubscriptionContext>()), Times.Never);
            service.MockEntitiesContext.Verify(c => c.SaveChangesAsync(), Times.Never);
        }