Skip to content

Commit 0f0ff60

Browse files
Merge pull request #312 from TransactionProcessing/task/#310_recordtransactionsource
Record Transacton Source
2 parents 264de4b + a1d6c04 commit 0f0ff60

25 files changed

Lines changed: 562 additions & 1012 deletions

File tree

TransactionProcessor.BusinessLogic.Tests/Requests/RequestTests.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ public void ProcessSaleTransactionRequest_CanBeCreated_IsCreated()
3636
TestData.CustomerEmailAddress,
3737
TestData.AdditionalTransactionMetaData(),
3838
TestData.ContractId,
39-
TestData.ProductId);
39+
TestData.ProductId,
40+
TestData.TransactionSource);
4041

4142
processSaleTransactionRequest.ShouldNotBeNull();
4243
processSaleTransactionRequest.EstateId.ShouldBe(TestData.EstateId);
@@ -52,6 +53,7 @@ public void ProcessSaleTransactionRequest_CanBeCreated_IsCreated()
5253
processSaleTransactionRequest.AdditionalTransactionMetadata.Count.ShouldBe(TestData.AdditionalTransactionMetaData().Count);
5354
processSaleTransactionRequest.ContractId.ShouldBe(TestData.ContractId);
5455
processSaleTransactionRequest.ProductId.ShouldBe(TestData.ProductId);
56+
processSaleTransactionRequest.TransactionSource.ShouldBe(TestData.TransactionSource);
5557
}
5658

5759
[Fact]

TransactionProcessor.BusinessLogic.Tests/Services/TransactionAggregateManagerTests.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,19 @@ await transactionAggregateManager.AddProductDetails(TestData.EstateId,
237237
CancellationToken.None);
238238
}
239239

240+
[Fact]
241+
public async Task TransactionAggregateManager_AddTransactionSource_TransactionSourceAddedToTransaction()
242+
{
243+
Mock<IAggregateRepository<TransactionAggregate, DomainEvent>> aggregateRepository = new Mock<IAggregateRepository<TransactionAggregate, DomainEvent>>();
244+
aggregateRepository.Setup(a => a.GetLatestVersion(It.IsAny<Guid>(), It.IsAny<CancellationToken>())).ReturnsAsync(TestData.GetCompletedAuthorisedSaleTransactionAggregate);
245+
TransactionAggregateManager transactionAggregateManager = new TransactionAggregateManager(aggregateRepository.Object);
246+
247+
await transactionAggregateManager.AddTransactionSource(TestData.EstateId,
248+
TestData.TransactionId,
249+
(TransactionSource)TestData.TransactionSource,
250+
CancellationToken.None);
251+
}
252+
240253
[Fact]
241254
public async Task TransactionAggregateManager_AddFee_FeeAddedToTransaction()
242255
{

TransactionProcessor.BusinessLogic.Tests/Services/TransactionDomainServiceTests.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_SuccesfulOpera
527527
TestData.AdditionalTransactionMetaData(),
528528
TestData.ContractId,
529529
TestData.ProductId,
530+
TestData.TransactionSource,
530531
CancellationToken.None);
531532

532533
this.ValidateResponse(response, TransactionResponseCode.Success);
@@ -573,6 +574,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_InvalidTransac
573574
TestData.AdditionalTransactionMetaData(amount:"0.00"),
574575
TestData.ContractId,
575576
TestData.ProductId,
577+
TestData.TransactionSource,
576578
CancellationToken.None);
577579

578580
this.ValidateResponse(response, TransactionResponseCode.InvalidSaleTransactionAmount);
@@ -638,6 +640,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_MetaDataCaseTe
638640
TestData.AdditionalTransactionMetaData(amountName:amountFieldName),
639641
TestData.ContractId,
640642
TestData.ProductId,
643+
TestData.TransactionSource,
641644
CancellationToken.None);
642645

643646
this.ValidateResponse(response, TransactionResponseCode.Success);
@@ -703,6 +706,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_MetaDataCaseTe
703706
TestData.AdditionalTransactionMetaData(customerAccountNumberName: customerAccountNumberFieldName),
704707
TestData.ContractId,
705708
TestData.ProductId,
709+
TestData.TransactionSource,
706710
CancellationToken.None);
707711

708712
this.ValidateResponse(response, TransactionResponseCode.Success);
@@ -761,6 +765,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_FailedOperator
761765
TestData.AdditionalTransactionMetaData(),
762766
TestData.ContractId,
763767
TestData.ProductId,
768+
TestData.TransactionSource,
764769
CancellationToken.None);
765770

766771
this.ValidateResponse(response, TransactionResponseCode.TransactionDeclinedByOperator);
@@ -805,6 +810,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_MerchantWithNu
805810
TestData.AdditionalTransactionMetaData(),
806811
TestData.ContractId,
807812
TestData.ProductId,
813+
TestData.TransactionSource,
808814
CancellationToken.None);
809815

810816
this.ValidateResponse(response, TransactionResponseCode.NoValidDevices);
@@ -850,6 +856,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_MerchantWithNo
850856
TestData.AdditionalTransactionMetaData(),
851857
TestData.ContractId,
852858
TestData.ProductId,
859+
TestData.TransactionSource,
853860
CancellationToken.None);
854861

855862
this.ValidateResponse(response, TransactionResponseCode.NoValidDevices);
@@ -894,6 +901,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_IncorrectDevic
894901
TestData.AdditionalTransactionMetaData(),
895902
TestData.ContractId,
896903
TestData.ProductId,
904+
TestData.TransactionSource,
897905
CancellationToken.None);
898906

899907
this.ValidateResponse(response, TransactionResponseCode.InvalidDeviceIdentifier);
@@ -938,6 +946,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_InvalidEstate_
938946
TestData.AdditionalTransactionMetaData(),
939947
TestData.ContractId,
940948
TestData.ProductId,
949+
TestData.TransactionSource,
941950
CancellationToken.None);
942951

943952
this.ValidateResponse(response, TransactionResponseCode.InvalidEstateId);
@@ -983,6 +992,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_NotEnoughCredi
983992
TestData.AdditionalTransactionMetaData(),
984993
TestData.ContractId,
985994
TestData.ProductId,
995+
TestData.TransactionSource,
986996
CancellationToken.None);
987997

988998
this.ValidateResponse(response, TransactionResponseCode.MerchantDoesNotHaveEnoughCredit);
@@ -1026,6 +1036,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_InvalidMerchan
10261036
TestData.AdditionalTransactionMetaData(),
10271037
TestData.ContractId,
10281038
TestData.ProductId,
1039+
TestData.TransactionSource,
10291040
CancellationToken.None);
10301041

10311042
this.ValidateResponse(response, TransactionResponseCode.InvalidMerchantId);
@@ -1069,6 +1080,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_EstateWithEmpt
10691080
TestData.AdditionalTransactionMetaData(),
10701081
TestData.ContractId,
10711082
TestData.ProductId,
1083+
TestData.TransactionSource,
10721084
CancellationToken.None);
10731085

10741086
this.ValidateResponse(response, TransactionResponseCode.NoEstateOperators);
@@ -1113,6 +1125,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_EstateWithNull
11131125
TestData.AdditionalTransactionMetaData(),
11141126
TestData.ContractId,
11151127
TestData.ProductId,
1128+
TestData.TransactionSource,
11161129
CancellationToken.None);
11171130

11181131
this.ValidateResponse(response, TransactionResponseCode.NoEstateOperators);
@@ -1157,6 +1170,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_OperatorNotSup
11571170
TestData.AdditionalTransactionMetaData(),
11581171
TestData.ContractId,
11591172
TestData.ProductId,
1173+
TestData.TransactionSource,
11601174
CancellationToken.None);
11611175

11621176
this.ValidateResponse(response, TransactionResponseCode.OperatorNotValidForEstate);
@@ -1202,6 +1216,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_MerchantWithEm
12021216
TestData.AdditionalTransactionMetaData(),
12031217
TestData.ContractId,
12041218
TestData.ProductId,
1219+
TestData.TransactionSource,
12051220
CancellationToken.None);
12061221

12071222
this.ValidateResponse(response, TransactionResponseCode.NoMerchantOperators);
@@ -1246,6 +1261,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_MerchantWithNu
12461261
TestData.AdditionalTransactionMetaData(),
12471262
TestData.ContractId,
12481263
TestData.ProductId,
1264+
TestData.TransactionSource,
12491265
CancellationToken.None);
12501266

12511267
this.ValidateResponse(response, TransactionResponseCode.NoMerchantOperators);
@@ -1290,6 +1306,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_OperatorNotSup
12901306
TestData.AdditionalTransactionMetaData(),
12911307
TestData.ContractId,
12921308
TestData.ProductId,
1309+
TestData.TransactionSource,
12931310
CancellationToken.None);
12941311

12951312
this.ValidateResponse(response, TransactionResponseCode.OperatorNotValidForMerchant);
@@ -1343,6 +1360,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_ErrorInOperato
13431360
TestData.AdditionalTransactionMetaData(),
13441361
TestData.ContractId,
13451362
TestData.ProductId,
1363+
TestData.TransactionSource,
13461364
CancellationToken.None);
13471365

13481366
this.ValidateResponse(response, TransactionResponseCode.OperatorCommsError);

TransactionProcessor.BusinessLogic/RequestHandlers/TransactionRequestHandler.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public async Task<ProcessSaleTransactionResponse> Handle(ProcessSaleTransactionR
8888
request.AdditionalTransactionMetadata,
8989
request.ContractId,
9090
request.ProductId,
91+
request.TransactionSource,
9192
cancellationToken);
9293

9394
return saleResponse;

0 commit comments

Comments
 (0)