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); }
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); }
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); }
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); }
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); }