public async Task GettingUsernameWithoutCurrentUserThrowsInvalidOperationException( Mock<IHttpContextAccessor> contextAccessor, Mock<Microsoft.AspNet.Http.HttpContext> context) { context.SetupProperty(c => c.User, null); contextAccessor.SetupProperty(ca => ca.HttpContext, context.Object); var providerUnderTest = new TokenUsernameProvider(contextAccessor.Object); await Assert.ThrowsAsync<InvalidOperationException>(async () => { await providerUnderTest.GetUsername(); }); }
public async Task GetsTheUsernameFromTheClaimsWhenAuthenticatedButNoUsernameClaimThrowsException( Mock<IHttpContextAccessor> contextAccessor, Mock<Microsoft.AspNet.Http.HttpContext> context, Mock<ClaimsPrincipal> claimsPrincipal, string givenName) { context.SetupProperty(c => c.User, claimsPrincipal.Object); contextAccessor.SetupProperty(ca => ca.HttpContext, context.Object); var providerUnderTest = new TokenUsernameProvider(contextAccessor.Object); await Assert.ThrowsAsync<InvalidOperationException>(async () => { await providerUnderTest.GetUsername(); }); }
public async Task GetsTheUsernameFromTheClaimsWhenAuthenticated( Mock<IHttpContextAccessor> contextAccessor, Mock<Microsoft.AspNet.Http.HttpContext> context, Mock<ClaimsPrincipal> claimsPrincipal, string givenName) { claimsPrincipal.Setup(ci => ci.HasClaim(It.IsAny<Predicate<Claim>>())).Returns(true); claimsPrincipal.Setup(ci => ci.FindFirst(usernameClaimType)).Returns(new Claim(usernameClaimType, givenName)); context.SetupProperty(c => c.User, claimsPrincipal.Object); contextAccessor.SetupProperty(ca => ca.HttpContext, context.Object); var providerUnderTest = new TokenUsernameProvider(contextAccessor.Object); var username = await providerUnderTest.GetUsername(); Assert.Equal(givenName, username); }