public void IsActiveAsync_UserFoundAndActive_ContextIsActive() { // Arrange var userId = Guid.NewGuid(); var options = new MembershipOptions(); var membershipService = A.Fake <IMembershipService>(); var roleService = A.Fake <IRoleService>(); var user = new MembershipUser { IsLockedOut = false }; A.CallTo(() => membershipService.GetUserAsync(userId)).Returns(Task.FromResult(user)); var context = new IsActiveContext( new ClaimsPrincipal( new ClaimsIdentity(new List <Claim> { new Claim(Constants.ClaimTypes.Subject, userId.ToString("N")) })), new Client() ); var service = new MembershipUserService(options, membershipService, roleService); // Act service.IsActiveAsync(context).Wait(); // Assert context.IsActive.Should().BeTrue(); A.CallTo(() => membershipService.GetUserAsync(userId)).MustHaveHappened(); }
public void IsActiveAsync_SubjectNull_ContextIsNotActive() { // Arrange var options = new MembershipOptions(); var membershipService = A.Fake <IMembershipService>(); var roleService = A.Fake <IRoleService>(); var context = new IsActiveContext(new ClaimsPrincipal(new ClaimsIdentity()), new Client()); var service = new MembershipUserService(options, membershipService, roleService); Action isActiveAsync = () => service.IsActiveAsync(context).Wait(); // Act + Assert isActiveAsync.Should().Throw <InvalidOperationException>().And.Message.Should().Be("sub claim is missing"); }
public void IsActiveAsync_SubjectClaimInvalid_ContextIsNotActive(string subjectId) { // Arrange var options = new MembershipOptions(); var membershipService = A.Fake <IMembershipService>(); var roleService = A.Fake <IRoleService>(); var context = new IsActiveContext( new ClaimsPrincipal(new ClaimsIdentity(new List <Claim> { new Claim(Constants.ClaimTypes.Subject, subjectId) })), new Client() ); var service = new MembershipUserService(options, membershipService, roleService); // Act service.IsActiveAsync(context).Wait(); // Assert context.IsActive.Should().BeFalse(); }