public void GivenAnUnrecognizedException_WhenExecutingAnAction_ThenNoResponseShouldBeCreated() { var filter = new OperationOutcomeExceptionFilterAttribute(_fhirRequestContextAccessor); _context.Exception = new Exception(); filter.OnActionExecuted(_context); Assert.False(_context.ExceptionHandled); Assert.Null(_context.Result); }
public void GivenAFhirBasedException_WhenExecutingAnAction_ThenTheResponseShouldBeAnOperationOutcome() { var filter = new OperationOutcomeExceptionFilterAttribute(_fhirRequestContextAccessor); _context.Exception = Substitute.For <FhirException>(); filter.OnActionExecuted(_context); var result = _context.Result as OperationOutcomeResult; Assert.NotNull(result); Assert.Equal(_correlationId, result.Result.Id); }
public void GivenAnUnrecognizedExceptionAndInnerException_WhenExecutingAnAction_ThenNoResponseShouldBeCreated() { var filter = new OperationOutcomeExceptionFilterAttribute(_fhirRequestContextAccessor); var exception = new Exception(null, new Exception()); _context.Exception = exception; filter.OnActionExecuted(_context); Assert.False(_context.ExceptionHandled); Assert.Null(_context.Result); Assert.Same(exception, _context.Exception); // ensure state is restored }
private OperationOutcomeResult ValidateOperationOutcome(Exception exception, HttpStatusCode expectedStatusCode) { var filter = new OperationOutcomeExceptionFilterAttribute(_fhirRequestContextAccessor); _context.Exception = exception; filter.OnActionExecuted(_context); var result = _context.Result as OperationOutcomeResult; Assert.NotNull(result); Assert.Equal(expectedStatusCode, result.StatusCode); Assert.Equal(_correlationId, result.Result.Id); Assert.IsType <OperationOutcomeResult>(result); return(result); }
public void GivenAResourceGoneExceptionException_WhenExecutingAnAction_ThenTheResponseShouldBeAnOperationOutcome() { var filter = new OperationOutcomeExceptionFilterAttribute(_fhirRequestContextAccessor); _context.Exception = new ResourceGoneException(new ResourceKey <Observation>("id1", "version2")); filter.OnActionExecuted(_context); var result = _context.Result as OperationOutcomeResult; Assert.NotNull(result); Assert.Equal(HttpStatusCode.Gone, result.StatusCode); Assert.Equal("W/\"version2\"", result.Headers[HeaderNames.ETag]); var operation = result.Result; Assert.NotNull(operation); Assert.Equal(_correlationId, result.Result.Id); }