コード例 #1
0
        public async Task GivenRequestFailsWithAnyOtherReason_WhenExecuting_ThenTransactionFailedExceptionShouldBeThrown()
        {
            var expectedOperationOutcome = new OperationOutcome();

            SetupPostException(HttpStatusCode.NotFound, expectedOperationOutcome);

            TransactionFailedException exception = await Assert.ThrowsAsync <TransactionFailedException>(
                () => _fhirTransactionExecutor.ExecuteTransactionAsync(new Bundle(), default));

            Assert.Same(expectedOperationOutcome, exception.OperationOutcome);
        }
コード例 #2
0
 public async Task <AppResponse> Handle(TCommand request, CancellationToken cancellationToken)
 {
     return(await Task.Factory.StartNew(() => {
         Exception = new TransactionFailedException();
         var fromErrorCode = From.DecreaseBalance(request.Amount, request.TransactionId);
         CheckDecreaseBalanceResult(fromErrorCode, request);
         var toErrorCode = To.IncreaseBalance(request.Amount, request.TransactionId);
         CheckIncreaseBalanceResult(toErrorCode, request);
         return AppResponse.Success(null);
     }));
 }
        public void GivenAnEmptyListOfOperationOutComeIssues_WhenInitialized_ThenOneOperationOutcomeIssueShouldBeAdded()
        {
            string         message    = "message";
            HttpStatusCode statusCode = HttpStatusCode.Processing;

            var exception = new TransactionFailedException(message, statusCode, new List <OperationOutcomeIssue>());

            Assert.NotNull(exception.Issues);
            Assert.Single(exception.Issues);

            AssertOperationOutcomeIssue(message, OperationOutcomeConstants.IssueType.Processing, exception.Issues.First());
        }
        public void GivenAListOfOperationOutComeIssues_WhenInitialized_ThenCorrectOperationOutcomeIssuesShouldBeAdded()
        {
            string         message                = "message";
            HttpStatusCode statusCode             = HttpStatusCode.Processing;
            var            operationOutComeIssues = GetOperationOutcomeIssues(message);

            var exception = new TransactionFailedException(message, statusCode, operationOutComeIssues);

            Assert.NotNull(exception.Issues);
            Assert.Equal(3, exception.Issues.Count);

            AssertOperationOutcomeIssue(message, OperationOutcomeConstants.IssueType.Processing, exception.Issues.First());
            AssertOperationOutcomeIssue(message, OperationOutcomeConstants.IssueType.NotFound, exception.Issues.Skip(1).First());
            AssertOperationOutcomeIssue(message, OperationOutcomeConstants.IssueType.Invalid, exception.Issues.Last());
        }