public void VerifyThatUseCaseForUserAuthCallsGateway() { var groups = new List <string> { _faker.Random.Word(), _faker.Random.Word() }; var request = GenerateAuthorizerRequest(GenerateJwtHelper.GenerateJwtTokenUserFlow(groups)); var dbData = _fixture.Create <APIDataUserFlow>(); var apiName = _faker.Random.Word(); _mockAwsStsGateway.Setup(x => x.GetTemporaryCredentials(It.IsAny <string>())).Returns(new AssumeRoleResponse()); _mockAwsApiGateway.Setup(x => x.GetApiName(It.IsAny <string>(), It.IsAny <Credentials>())).Returns(apiName); _mockDynamoDbGateway.Setup(x => x.GetAPIDataByNameAndEnvironmentAsync(apiName, request.Environment)).Returns(dbData); _classUnderTest.ExecuteUserAuth(request); _mockDynamoDbGateway.Verify(x => x.GetAPIDataByNameAndEnvironmentAsync(apiName, request.Environment), Times.Once); }
public void Setup() { _serviceProvider = new Mock <IServiceProvider>(); _classUnderTest = new VerifyTokenHandler(_serviceProvider.Object); _mockDatabaseGateway = new Mock <IAuthTokenDatabaseGateway>(); _mockAwsApiGateway = new Mock <IAwsApiGateway>(); _mockAwsStsGateway = new Mock <IAwsStsGateway>(); _mockDynamoDbGateway = new Mock <IDynamoDbGateway>(); //set up env vars Environment.SetEnvironmentVariable("jwtSecret", _fixture.Create <string>()); Environment.SetEnvironmentVariable("hackneyUserAuthTokenJwtSecret", _faker.Random.AlphaNumeric(25)); //set up JWT tokens _allowedGroups = new List <string> { _faker.Random.Word(), _faker.Random.Word() }; _jwtServiceFlow = GenerateJwtHelper.GenerateJwtToken(); _jwtUserFlow = GenerateJwtHelper.GenerateJwtTokenUserFlow(_allowedGroups); }
public void ShouldDenyAccessIfRequestDataDoesNotMatchDbData() { var groups = new List <string> { _faker.Random.Word(), _faker.Random.Word() }; var request = GenerateAuthorizerRequest(GenerateJwtHelper.GenerateJwtTokenUserFlow(groups)); var apiName = _faker.Random.Word(); //no matching environment or aws account should result in deny var dbData = _fixture.Build <APIDataUserFlow>() .With(x => x.AllowedGroups, groups) .With(x => x.ApiName, apiName).Create(); _mockAwsStsGateway.Setup(x => x.GetTemporaryCredentials(It.IsAny <string>())).Returns(new AssumeRoleResponse()); _mockAwsApiGateway.Setup(x => x.GetApiName(It.IsAny <string>(), It.IsAny <Credentials>())).Returns(apiName); _mockDynamoDbGateway.Setup(x => x.GetAPIDataByNameAndEnvironmentAsync(apiName, request.Environment)).Returns(dbData); var result = _classUnderTest.ExecuteUserAuth(request); result.Allow.Should().BeFalse(); }