コード例 #1
0
        public async Task <IActionResult> GenerateTokenAsync([FromBody] GenerateJwtModel generateJwtModel)
        {
            var generateJwtInfo = new GenerateJwtInfo
            {
                Audience = generateJwtOptions.Audience,
                Issuer   = generateJwtOptions.Issuer,
                Secret   = generateJwtOptions.Secret,
                Scopes   = new[]
                {
                    Policies.TodoItems.CreateTodoItem,
                    Policies.TodoItems.DeleteTodoItem,
                    Policies.TodoItems.GetTodoItems,
                    Policies.TodoItems.UpdateTodoItem
                },
                UserName = generateJwtModel.UserName,
                Password = generateJwtModel.Password
            };

            JwtInfo jwtInfo = await generateJwtFlow.ExecuteAsync(generateJwtInfo, User);

            var jwtModel = new JwtModel
            {
                AccessToken = jwtInfo.AccessToken
            };

            return(Ok(jwtModel));
        }
コード例 #2
0
        public async Task ExecuteAsync_WhenGenerateJwtInfoIsValid_ReturnsExpectedData()
        {
            // Arrange
            var expectedJwtInfo = new JwtInfo();
            var jwtService      = new Mock <IJwtService>();

            jwtService.Setup(x => x.GenerateJwtAsync(It.IsAny <GenerateJwtInfo>())).ReturnsAsync(expectedJwtInfo);

            var logger          = new Mock <ILogger <GenerateJwtFlow> >();
            var generateJwtInfo = new GenerateJwtInfo();

            var principal = new Mock <IPrincipal>();

            principal.SetupGet(x => x.Identity).Returns(new GenericIdentity("test"));

            var generateJwtFlow = new GenerateJwtFlow(jwtService.Object, logger.Object);

            // Act
            var actualJwtInfo = await generateJwtFlow.ExecuteAsync(generateJwtInfo, principal.Object);

            // Assert
            actualJwtInfo.Should().BeEquivalentTo(expectedJwtInfo, $"because {nameof(GenerateJwtFlow)} works");
        }
コード例 #3
0
 public Task <JwtInfo> ExecuteAsync(GenerateJwtInfo input, IPrincipal flowInitiator)
 {
     throw new InvalidOperationException("This method must fail for testing purposes");
 }