public async Task ShouldReturnIdOfTheAssociatedUser() { var userManager = new FakeUserManager(); var sut = new UserAuthorizationService(userManager, Mock.Of <AllReadyContext>()); var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); sut.AssociatedUserId.ShouldBe("123"); }
public async Task IsOrganizationAdmin_ShouldReturnFalse_WhenClaimsPrincipleDoesNotHaveOrgAdminClaim() { var userManager = new FakeUserManager(); var sut = new UserAuthorizationService(userManager, Mock.Of <AllReadyContext>()); var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); sut.IsOrganizationAdmin(1).ShouldBeFalse(); }
public async Task AssociateUser_ShouldCallUserManager_IfClaimsPrincipleIdentityIsAuthenticated() { var userManager = new FakeUserManager(); var sut = new UserAuthorizationService(userManager, Mock.Of <AllReadyContext>()); var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); userManager.FindByEmailAsyncCallCount.ShouldBe(1); }
public async Task AssociateUser_ShouldThrowError_IfUserAlreadyAssociated() { var sut = new UserAuthorizationService(new FakeUserManager(), Mock.Of <AllReadyContext>()); var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); Exception ex = await Assert.ThrowsAsync <InvalidOperationException>(() => sut.AssociateUser(new ClaimsPrincipal())); ex.ShouldNotBeNull(); }
public async Task IsOrganizationAdmin_ShouldReturnFalse_WhenClaimsPrincipleDoesNotHaveOrgAdminClaim() { var userManager = UserManagerMockHelper.CreateUserManagerMock(); userManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>())).ReturnsAsync(new ApplicationUser()); var sut = new UserAuthorizationService(userManager.Object, Mock.Of <AllReadyContext>()); var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); sut.IsOrganizationAdmin(1).ShouldBeFalse(); }
public async Task IsSiteAdmin_ShouldReturnTrue_WhenClaimsPrincipleHasSiteAdminClaim() { var userManager = new FakeUserManager(); var sut = new UserAuthorizationService(userManager, Mock.Of <AllReadyContext>()); var claimsIdentity = new ClaimsIdentity(new List <Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, "SiteAdmin") }, "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); sut.IsSiteAdmin.ShouldBeTrue(); }
public async Task GetManagedCampaignIds_CallsContextOnFirstLoad() { var userManager = new FakeUserManager(); var sut = new UserAuthorizationService(userManager, Context); var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); var managedCampaignIds = await sut.GetManagedCampaignIds(); managedCampaignIds.Count.ShouldBe(1); }
public async Task IsTeamLead_ReturnsFalse_WhenUserHasNoTeamLeadTaskSignupRecords() { var userManager = new FakeUserManagerForBasicUser(); var sut = new UserAuthorizationService(userManager, Context); var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); var isEventManager = await sut.IsTeamLead(); isEventManager.ShouldBe(false); }
public async Task IsOrganizationAdmin_ShouldReturnFalse_WhenClaimsPrincipleHasOrgAdminClaimAndButDifferentOrganizationId() { var userManager = new FakeUserManager(); var sut = new UserAuthorizationService(userManager, Mock.Of <AllReadyContext>()); var claimsIdentity = new ClaimsIdentity(new List <Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, "OrgAdmin"), new Claim(AllReady.Security.ClaimTypes.Organization, "1") }, "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); sut.IsOrganizationAdmin(100).ShouldBeFalse(); }
public async Task HasAssociatedUserShouldReturnTrue_WhenUserAssociated() { var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); var userManager = UserManagerMockHelper.CreateUserManagerMock(); userManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>())).ReturnsAsync(new ApplicationUser()); var sut = new UserAuthorizationService(userManager.Object, Mock.Of <AllReadyContext>()); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); sut.HasAssociatedUser.ShouldBeTrue(); }
public async Task IsCampaignManager_ReturnsTrue_WhenUserHasManagedCampaignRecord() { var userManager = new FakeUserManager(); var sut = new UserAuthorizationService(userManager, Context); var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); var isEventManager = await sut.IsCampaignManager(); isEventManager.ShouldBe(true); }
public async Task IsTeamLead_ReturnsFalse_WhenUserHasNoTeamLeadTaskSignupRecords() { var userManager = UserManagerMockHelper.CreateUserManagerMock(); userManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>())).ReturnsAsync(new ApplicationUser()); var sut = new UserAuthorizationService(userManager.Object, Context); var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); var isEventManager = await sut.IsTeamLead(); isEventManager.ShouldBe(false); }
public async Task AssociateUser_ShouldInvokeFindByEmailAsyncWithTheCorrectEmail_WhenClaimsPrincipleIdentityIsAuthenticated() { const string email = "email"; var userManager = UserManagerMockHelper.CreateUserManagerMock(); var claimsIdentity = new ClaimsIdentity(new List <Claim> { new Claim(System.Security.Claims.ClaimTypes.Name, email) }, "CustomApiKeyAuth"); var sut = new UserAuthorizationService(userManager.Object, Mock.Of <AllReadyContext>()); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); userManager.Verify(x => x.FindByEmailAsync(email), Times.Once); }
public async Task IsOrganizationAdmin_ShouldReturnFalse_WhenClaimsPrincipleHasOrgAdminClaimAndButDifferentOrganizationId() { var userManager = UserManagerMockHelper.CreateUserManagerMock(); userManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>())).ReturnsAsync(new ApplicationUser { Id = UserId }); var sut = new UserAuthorizationService(userManager.Object, Mock.Of <AllReadyContext>()); var claimsIdentity = new ClaimsIdentity(new List <Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, nameof(UserType.OrgAdmin)), new Claim(AllReady.Security.ClaimTypes.Organization, "1") }, "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); sut.IsOrganizationAdmin(100).ShouldBeFalse(); }
public async Task GetLedItineraryIds_CallsContextOnFirstLoad() { var userManager = UserManagerMockHelper.CreateUserManagerMock(); userManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>())).ReturnsAsync(new ApplicationUser { Id = UserId }); var sut = new UserAuthorizationService(userManager.Object, Context); var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); var teamLeadIds = await sut.GetLedItineraryIds(); teamLeadIds.Count.ShouldBe(1); }
public async Task GetManagedEventIds_ReturnsExpectedEventIdsForUser() { var userManager = UserManagerMockHelper.CreateUserManagerMock(); userManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>())).ReturnsAsync(new ApplicationUser { Id = UserId }); var sut = new UserAuthorizationService(userManager.Object, Context); var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); var managedEventIds = await sut.GetManagedEventIds(); managedEventIds.Count.ShouldBe(1); }
public async Task AssociateUser_ShouldThrowError_IfUserAlreadyAssociatedWithDifferentEmail() { var sut = new UserAuthorizationService(new FakeUserManager(), Mock.Of <AllReadyContext>()); var claimsIdentity1 = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); claimsIdentity1.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, "Email1")); var claimsIdentity2 = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); claimsIdentity2.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, "Email2")); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity1)); Exception ex = await Assert.ThrowsAsync <InvalidOperationException>(() => sut.AssociateUser(new ClaimsPrincipal(claimsIdentity2))); ex.ShouldNotBeNull(); }
public async Task IsCampaignManager_ReturnsTrue_WhenUserHasManagedCampaignRecord() { var userManager = UserManagerMockHelper.CreateUserManagerMock(); userManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>())).ReturnsAsync(new ApplicationUser { Id = UserId }); var sut = new UserAuthorizationService(userManager.Object, Context); var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); var isEventManager = await sut.IsCampaignManager(); isEventManager.ShouldBe(true); }
public async Task AssociateUser_ShouldDoNothing_IfUserAlreadyAssociatedWithSameEmail() { var userManager = new FakeUserManager(); var sut = new UserAuthorizationService(userManager, Mock.Of <AllReadyContext>()); var claimsIdentity1 = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); claimsIdentity1.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, "Email")); var claimsIdentity2 = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); claimsIdentity2.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, "Email")); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity1)); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity2)); Assert.Equal(1, userManager.FindByEmailAsyncCallCount); }
public async Task AssociateUser_ShouldThrowError_IfUserAlreadyAssociatedWithDifferentEmail() { const string email = "Email"; const string authentciationType = "CustomApiKeyAuth"; var userManager = UserManagerMockHelper.CreateUserManagerMock(); userManager.Setup(x => x.FindByEmailAsync(email)).ReturnsAsync(new ApplicationUser()); var sut = new UserAuthorizationService(userManager.Object, Mock.Of <AllReadyContext>()); var claimsIdentity1 = new ClaimsIdentity(new List <Claim>(), authentciationType); claimsIdentity1.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, email)); var claimsIdentity2 = new ClaimsIdentity(new List <Claim>(), authentciationType); claimsIdentity2.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, email)); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity1)); await Assert.ThrowsAsync <InvalidOperationException>(() => sut.AssociateUser(new ClaimsPrincipal(claimsIdentity2))); }
public async Task GetManagedCampaignIds_DoesNotCallContextOnSecondLoad() { var userManager = new FakeUserManager(); var sut = new UserAuthorizationService(userManager, Context); var claimsIdentity = new ClaimsIdentity(new List <Claim>(), "CustomApiKeyAuth"); await sut.AssociateUser(new ClaimsPrincipal(claimsIdentity)); var managedCampaignIds = await sut.GetManagedCampaignIds(); var manager = Context.CampaignManagers.First(); Context.Remove(manager); Context.SaveChanges(); Context.CampaignManagers.Count().ShouldBe(0); var managedCampaignIds2 = await sut.GetManagedCampaignIds(); managedCampaignIds2.Count.ShouldBe(1); }
public void ShouldReturnNull_WhenNoUserAssociated() { var sut = new UserAuthorizationService(UserManagerMockHelper.CreateUserManagerMock().Object, Mock.Of <AllReadyContext>()); sut.AssociatedUserId.ShouldBeNull(); }
public void HasAssociatedUserShouldReturnFalse_WhenNoUserAssociated() { var sut = new UserAuthorizationService(UserManagerMockHelper.CreateUserManagerMock().Object, Mock.Of <AllReadyContext>()); sut.HasAssociatedUser.ShouldBeFalse(); }