public async Task AuthorizationService_ValidateRequestAsync_ReturnsIdentityOfApplication() { // arrange ResetMocks(); var jwt = "jwt"; var applicationId = 1; var fncConnectResult = new JwtValidationResultDto() { JwtData = new FullJwtDataDto() { AppInfo = new ApplicationDto() { ImmutableAppID = applicationId } } }; var application = new Application(applicationId, "test"); _jwtManager.Setup(x => x.ValidateJwtAsync(It.IsAny <string>())).ReturnsAsync(fncConnectResult); _repo.Setup(x => x.GetApplicationAsync(It.IsAny <long>())).ReturnsAsync(application); var target = new AuthorizationService(_jwtManager.Object, _repo.Object); // act var result = await target.ValidateRequestAsync(jwt); // assert Assert.NotNull(result); Assert.Equal(applicationId, result.Id); }
public async Task <Identity> ValidateRequestAsync(string jwt) { if (string.IsNullOrWhiteSpace(jwt)) { throw new ArgumentNullException("jwt"); } // Validate JWT JwtValidationResultDto fncConnectResult = await _jwtManager.ValidateJwtAsync(jwt).ConfigureAwait(false); ApplicationDto appInfo = fncConnectResult.JwtData.AppInfo; // check if Application is configured in EventPublisher Application application = await _repository.GetApplicationAsync(fncConnectResult.JwtData.AppInfo.ImmutableAppID).ConfigureAwait(false); if (application == null) { throw new NotAuthorizedException(string.Format("Application {0} is not configured.", appInfo.AppName)); } return(new Identity() { Id = appInfo.ImmutableAppID, Name = appInfo.AppName }); }
public async Task AuthorizationService_ValidateRequestAsync_ThrowsNotAuthorizedIfApplicationIsNotFound() { // arrange ResetMocks(); var jwt = "jwt"; var fncConnectResult = new JwtValidationResultDto() { JwtData = new FullJwtDataDto() { AppInfo = new ApplicationDto() { ImmutableAppID = 1 } } }; _jwtManager.Setup(x => x.ValidateJwtAsync(It.IsAny <string>())).ReturnsAsync(fncConnectResult); _repo.Setup(x => x.GetApplicationAsync(It.IsAny <long>())).ReturnsAsync((Application)null); var target = new AuthorizationService(_jwtManager.Object, _repo.Object); // act await Assert.ThrowsAsync <NotAuthorizedException>(async() => await target.ValidateRequestAsync(jwt)); }