From 01cdf370551c5a217ba0c2967bf6bd256c3b101c Mon Sep 17 00:00:00 2001 From: StuartFerguson Date: Fri, 10 Oct 2025 12:13:50 +0100 Subject: [PATCH 1/2] reintroduce intergation tests --- .github/workflows/pullrequest.yml | 8 ++++---- .../Services/TransactionValidationService.cs | 2 +- TransactionProcessor.Client/TransactionProcessorClient.cs | 3 +-- .../ITransactionProcessorReadModelRepository.cs | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index 6eac30e..20dfc44 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -36,11 +36,11 @@ jobs: dotnet test "TransactionProcessor.Tests\TransactionProcessor.Tests.csproj" dotnet test "TransactionProcessor.DatabaseTests\TransactionProcessor.DatabaseTests.csproj" - # - name: Build Docker Image - # run: docker build . --file TransactionProcessor/Dockerfile --tag transactionprocessor:latest + - name: Build Docker Image + run: docker build . --file TransactionProcessor/Dockerfile --tag transactionprocessor:latest - # - name: Run Integration Tests - # run: dotnet test "TransactionProcessor.IntegrationTests\TransactionProcessor.IntegrationTests.csproj" --filter Category=PRTest --logger "trx;LogFileName=test-results.trx" + - name: Run Integration Tests + run: dotnet test "TransactionProcessor.IntegrationTests\TransactionProcessor.IntegrationTests.csproj" --filter Category=PRTest --logger "trx;LogFileName=test-results.trx" - uses: actions/upload-artifact@v4.4.0 if: ${{ failure() }} diff --git a/TransactionProcessor.BusinessLogic/Services/TransactionValidationService.cs b/TransactionProcessor.BusinessLogic/Services/TransactionValidationService.cs index 9a41905..42acf04 100644 --- a/TransactionProcessor.BusinessLogic/Services/TransactionValidationService.cs +++ b/TransactionProcessor.BusinessLogic/Services/TransactionValidationService.cs @@ -75,7 +75,7 @@ public async Task> ValidateLogonTransaction( // Validate Merchant var merchantValidationResult = await ValidateMerchant(estateValidationResult.Data.additionalData.EstateName, merchantId, cancellationToken); - if (merchantValidationResult.IsFailed) return CreateFailedResult(merchantValidationResult.Data.validationResult); ; + if (merchantValidationResult.IsFailed) return CreateFailedResult(merchantValidationResult.Data.validationResult); Models.Merchant.Merchant merchant = merchantValidationResult.Data.additionalData.GetMerchant(); diff --git a/TransactionProcessor.Client/TransactionProcessorClient.cs b/TransactionProcessor.Client/TransactionProcessorClient.cs index 7992fe4..cda67fa 100644 --- a/TransactionProcessor.Client/TransactionProcessorClient.cs +++ b/TransactionProcessor.Client/TransactionProcessorClient.cs @@ -306,8 +306,7 @@ public async Task> GetVoucherByCode(String accessToke catch (Exception ex) { // An exception has occurred, add some additional information to the message Exception exception = new("Error getting voucher by code.", ex); - ; - + throw exception; } } diff --git a/TransactionProcessor.Repository/ITransactionProcessorReadModelRepository.cs b/TransactionProcessor.Repository/ITransactionProcessorReadModelRepository.cs index 7f1468b..03b53a7 100644 --- a/TransactionProcessor.Repository/ITransactionProcessorReadModelRepository.cs +++ b/TransactionProcessor.Repository/ITransactionProcessorReadModelRepository.cs @@ -1340,7 +1340,7 @@ public async Task StartReconciliation(ReconciliationDomainEvents.Reconci await context.Reconciliations.AddAsync(reconciliation, cancellationToken); - return await context.SaveChangesAsync(cancellationToken); ; + return await context.SaveChangesAsync(cancellationToken); } public async Task StartTransaction(TransactionDomainEvents.TransactionHasStartedEvent domainEvent, From 7645b94f03d31c4cef73335a721f603499578f15 Mon Sep 17 00:00:00 2001 From: StuartFerguson Date: Fri, 10 Oct 2025 13:11:07 +0100 Subject: [PATCH 2/2] fix failed integration test --- .../TransactionProcessorClient.cs | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/TransactionProcessor.Client/TransactionProcessorClient.cs b/TransactionProcessor.Client/TransactionProcessorClient.cs index cda67fa..9fe3bd3 100644 --- a/TransactionProcessor.Client/TransactionProcessorClient.cs +++ b/TransactionProcessor.Client/TransactionProcessorClient.cs @@ -102,6 +102,25 @@ private async Task> SendPostRequest(String uri, String accessToke return Result.Success(result.Data); } + private async Task> SendPutRequest(String uri, String accessToken, String content, CancellationToken cancellationToken) + { + + HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Put, uri); + requestMessage.Headers.Authorization = new AuthenticationHeaderValue(AuthenticationSchemes.Bearer, accessToken); + requestMessage.Content = new StringContent(content, Encoding.UTF8, "application/json"); + + // Make the Http Call here + HttpResponseMessage httpResponse = await this.HttpClient.SendAsync(requestMessage, cancellationToken); + + // Process the response + Result result = await this.HandleResponseX(httpResponse, cancellationToken); + + if (result.IsFailed) + return ResultHelpers.CreateFailure(result); + + return Result.Success(result.Data); + } + public static class AuthenticationSchemes { public static readonly String Bearer = "Bearer"; @@ -421,7 +440,7 @@ public async Task> RedeemVoucher(String accessToke try { String requestSerialised = JsonConvert.SerializeObject(redeemVoucherRequest); - Result result = await this.SendPostRequest(requestUri, accessToken, requestSerialised, cancellationToken); + Result result = await this.SendPutRequest(requestUri, accessToken, requestSerialised, cancellationToken); if (result.IsFailed) return ResultHelpers.CreateFailure(result);