public async void UpdateRefreshTokenThrowsExceptionWhenClaimsPrincipalIsInvalidAsync() { JwtTokenBl jwtService = new JwtTokenBl(_mockRefreshRepository.Object, _mockUserBl.Object, _mockAccountBl.Object, _mockConfigurations.Object); await Assert.ThrowsAsync <SecurityTokenException>(() => jwtService.UpdateRefreshTokenAsync("token", _mockClaimsPrincipal.Object)); _mockRefreshRepository.Verify(refreshRepository => refreshRepository.UpdateAsync(It.IsAny <UserRefreshToken>()), Times.Never); }
public async void LoginByRefreshTokenMustCreateRefreshTokenWhenUserNotHaveYetAsync() { _mockRefreshRepository.Setup(refreshRepository => refreshRepository.GetByUserIdAsync(It.IsAny <string>())).ReturnsAsync((UserRefreshToken)null); JwtTokenBl jwtService = new JwtTokenBl(_mockRefreshRepository.Object, _mockUserBl.Object, _mockAccountBl.Object, _mockConfigurations.Object); await jwtService.LoginByRefreshTokenAsync("id", "token"); _mockRefreshRepository.Verify(refreshRepository => refreshRepository.UpdateAsync(It.IsAny <UserRefreshToken>()), Times.Never); _mockRefreshRepository.Verify(refreshRepository => refreshRepository.CreateAsync(It.IsAny <UserRefreshToken>()), Times.Once); }
public async void DeleteRefreshTokenMustDeleteRefreshTokenByUserEmailAsync() { var mockClaim = new Mock <Claim>("uid", "id"); _mockClaimsPrincipal.Setup(claimsPrincipal => claimsPrincipal.HasClaim(It.IsAny <Predicate <Claim> >())).Returns(true); _mockClaimsPrincipal.Setup(claimsPrincipal => claimsPrincipal.FindFirst(It.IsAny <Predicate <Claim> >())).Returns(mockClaim.Object); _mockRefreshRepository.Setup(refreshRepository => refreshRepository.GetByUserIdAsync(It.IsAny <string>())).ReturnsAsync(_mockUserRefreshToken.Object); JwtTokenBl jwtService = new JwtTokenBl(_mockRefreshRepository.Object, _mockUserBl.Object, _mockAccountBl.Object, _mockConfigurations.Object); await jwtService.DeleteRefreshTokenAsync(_mockClaimsPrincipal.Object); _mockRefreshRepository.Verify(refreshRepository => refreshRepository.DeleteAsync(_mockUserRefreshToken.Object.Id), Times.Once); }
public async void UpdateRefreshTokenThrowsExceptionWhenRefreshTokensIsNotEqualAsync() { var mockClaim = new Mock <Claim>("uid", "id"); _mockClaimsPrincipal.Setup(claimsPrincipal => claimsPrincipal.HasClaim(It.IsAny <Predicate <Claim> >())).Returns(true); _mockClaimsPrincipal.Setup(claimsPrincipal => claimsPrincipal.FindFirst(It.IsAny <Predicate <Claim> >())).Returns(mockClaim.Object); _mockRefreshRepository.Setup(refreshRepository => refreshRepository.GetByUserIdAsync(It.IsAny <string>())).ReturnsAsync(_mockUserRefreshToken.Object); JwtTokenBl jwtService = new JwtTokenBl(_mockRefreshRepository.Object, _mockUserBl.Object, _mockAccountBl.Object, _mockConfigurations.Object); await Assert.ThrowsAsync <SecurityTokenException>(() => jwtService.UpdateRefreshTokenAsync("token", _mockClaimsPrincipal.Object)); _mockRefreshRepository.Verify(refreshRepository => refreshRepository.UpdateAsync(It.IsAny <UserRefreshToken>()), Times.Never); }
public async void UpdateRefreshTokenMustUpdateRefreshTokenAndReturnNewRefreshTokenAsync() { var userRefreshToken = new UserRefreshToken { RefreshToken = "token" }; var mockClaim = new Mock <Claim>("uid", "id"); _mockClaimsPrincipal.Setup(claimsPrincipal => claimsPrincipal.HasClaim(It.IsAny <Predicate <Claim> >())).Returns(true); _mockClaimsPrincipal.Setup(claimsPrincipal => claimsPrincipal.FindFirst(It.IsAny <Predicate <Claim> >())).Returns(mockClaim.Object); _mockRefreshRepository.Setup(refreshRepository => refreshRepository.GetByUserIdAsync(It.IsAny <string>())).ReturnsAsync(userRefreshToken); JwtTokenBl jwtService = new JwtTokenBl(_mockRefreshRepository.Object, _mockUserBl.Object, _mockAccountBl.Object, _mockConfigurations.Object); var actualRefreshToken = await jwtService.UpdateRefreshTokenAsync("token", _mockClaimsPrincipal.Object); _mockRefreshRepository.Verify(refreshRepository => refreshRepository.UpdateAsync(userRefreshToken), Times.Once); }
public async void GetClaimsMustWriteUserNameInClaims() { var roles = new List <string> { "somerole" }; _mockAccountBl.Setup(userService => userService.GetUserRoles(_mockUser.Object)).ReturnsAsync(roles); _mockUser.SetupGet(user => user.UserName).Returns("userName"); _mockUser.SetupGet(user => user.Email).Returns("email"); _mockUser.SetupGet(user => user.Id).Returns("id"); JwtTokenBl jwtService = new JwtTokenBl(_mockRefreshRepository.Object, _mockUserBl.Object, _mockAccountBl.Object, _mockConfigurations.Object); var actualClaims = await jwtService.GetClaimsAsync(_mockUser.Object); var existsUserName = new List <Claim>(actualClaims) .Exists(claim => claim.Type == JwtRegisteredClaimNames.Sub && claim.Value == "userName"); _mockAccountBl.Verify(); _mockUser.Verify(); Assert.True(existsUserName); }