예제 #1
0
        public async Task GenerateJwtTokenAsync_Return_Ok_Result(Mock <IJwtTokenService> jwtTokenService,
                                                                 string expected)
        {
            // Arrange
            var sut        = new AccountController(jwtTokenService.Object);
            var requestDto = new GenerateJwtTokenRequestDto()
            {
                Email = "*****@*****.**", Password = "******"
            };

            jwtTokenService.Setup(setup => setup.GenerateJwtTokenAsync()).Returns(Task.FromResult(expected));

            // Act
            var result    = sut.GenerateJwtTokenAsync(requestDto);
            var apiResult = result.Result.Should().BeOfType <OkObjectResult>().Subject;
            var model     = apiResult.Value;

            // Assert
            Assert.IsType <OkObjectResult>(result.Result);
            Assert.IsNotType <CreatedAtActionResult>(result.Result);
            Assert.IsNotType <BadRequestObjectResult>(result.Result);
            Assert.IsNotType <AcceptedAtActionResult>(result.Result);

            Assert.NotNull(result.Result);
            Assert.NotNull(expected);
        }
        public async Task <IActionResult> GenerateJwtTokenAsync([FromBody] GenerateJwtTokenRequestDto model)
        {
            var claims = await jwtTokenService.GenerateClaimsAsync(new List <Jwt.Models.ClaimDto>()
            {
                new Jwt.Models.ClaimDto()
                {
                    Type  = "Email",
                    Value = model.Email.Trim()
                }
            });

            var jwtToken = await jwtTokenService.GenerateJwtTokenAsync(claims, Jwt.Models.Algorithms.HmacSha256Signature);

            return(Ok(jwtToken));
        }