Skip to content

Commit 0ca5cb9

Browse files
Record Customer Email with Transaction Details
1 parent 9a24c5a commit 0ca5cb9

28 files changed

Lines changed: 524 additions & 192 deletions

TransactionProcessor.BusinessLogic.Tests/Requests/RequestTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public void ProcessSaleTransactionRequest_CanBeCreated_IsCreated()
3333
ProcessSaleTransactionRequest processSaleTransactionRequest = ProcessSaleTransactionRequest.Create(TestData.TransactionId, TestData.EstateId, TestData.MerchantId, TestData.DeviceIdentifier, TestData.TransactionTypeLogon.ToString(), TestData.TransactionDateTime,
3434
TestData.TransactionNumber,
3535
TestData.OperatorIdentifier1,
36+
TestData.CustomerEmailAddress,
3637
TestData.AdditionalTransactionMetaData);
3738

3839
processSaleTransactionRequest.ShouldNotBeNull();
@@ -44,6 +45,7 @@ public void ProcessSaleTransactionRequest_CanBeCreated_IsCreated()
4445
processSaleTransactionRequest.TransactionNumber.ShouldBe(TestData.TransactionNumber);
4546
processSaleTransactionRequest.TransactionId.ShouldBe(TestData.TransactionId);
4647
processSaleTransactionRequest.OperatorIdentifier.ShouldBe(TestData.OperatorIdentifier1);
48+
processSaleTransactionRequest.CustomerEmailAddress.ShouldBe(TestData.CustomerEmailAddress);
4749
processSaleTransactionRequest.AdditionalTransactionMetadata.ShouldNotBeNull();
4850
processSaleTransactionRequest.AdditionalTransactionMetadata.Count.ShouldBe(TestData.AdditionalTransactionMetaData.Count);
4951
}

TransactionProcessor.BusinessLogic.Tests/Services/TransactionAggregateManagerTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,5 +232,20 @@ await transactionAggregateManager.CompleteTransaction(TestData.EstateId,
232232
TestData.TransactionId,
233233
CancellationToken.None);
234234
}
235+
236+
[Fact]
237+
public async Task TransactionAggregateManager_RequestEmailReceipt_EmailRecieptRequested()
238+
{
239+
Mock<IAggregateRepository<TransactionAggregate>> aggregateRepository = new Mock<IAggregateRepository<TransactionAggregate>>();
240+
aggregateRepository.Setup(a => a.GetLatestVersion(It.IsAny<Guid>(), It.IsAny<CancellationToken>())).ReturnsAsync(TestData.GetCompletedTransactionAggregate);
241+
Mock<IAggregateRepositoryManager> aggregateRepositoryManager = new Mock<IAggregateRepositoryManager>();
242+
aggregateRepositoryManager.Setup(a => a.GetAggregateRepository<TransactionAggregate>(It.IsAny<Guid>())).Returns(aggregateRepository.Object);
243+
TransactionAggregateManager transactionAggregateManager = new TransactionAggregateManager(aggregateRepositoryManager.Object);
244+
245+
await transactionAggregateManager.RequestEmailReceipt(TestData.EstateId,
246+
TestData.TransactionId,
247+
TestData.CustomerEmailAddress,
248+
CancellationToken.None);
249+
}
235250
}
236251
}

TransactionProcessor.BusinessLogic.Tests/Services/TransactionDomainServiceTests.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_SuccesfulOpera
291291
TestData.TransactionNumber,
292292
TestData.DeviceIdentifier,
293293
TestData.OperatorIdentifier1,
294+
TestData.CustomerEmailAddress,
294295
TestData.AdditionalTransactionMetaData,
295296
CancellationToken.None);
296297

@@ -341,6 +342,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_FailedOperator
341342
TestData.TransactionNumber,
342343
TestData.DeviceIdentifier,
343344
TestData.OperatorIdentifier1,
345+
TestData.CustomerEmailAddress,
344346
TestData.AdditionalTransactionMetaData,
345347
CancellationToken.None);
346348

@@ -379,6 +381,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_MerchantWithNu
379381
TestData.TransactionNumber,
380382
TestData.DeviceIdentifier,
381383
TestData.OperatorIdentifier1,
384+
TestData.CustomerEmailAddress,
382385
TestData.AdditionalTransactionMetaData,
383386
CancellationToken.None);
384387

@@ -418,6 +421,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_MerchantWithNo
418421
TestData.TransactionNumber,
419422
TestData.DeviceIdentifier,
420423
TestData.OperatorIdentifier1,
424+
TestData.CustomerEmailAddress,
421425
TestData.AdditionalTransactionMetaData,
422426
CancellationToken.None);
423427

@@ -456,6 +460,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_IncorrectDevic
456460
TestData.TransactionNumber,
457461
TestData.DeviceIdentifier1,
458462
TestData.OperatorIdentifier1,
463+
TestData.CustomerEmailAddress,
459464
TestData.AdditionalTransactionMetaData,
460465
CancellationToken.None);
461466

@@ -494,6 +499,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_InvalidEstate_
494499
TestData.TransactionNumber,
495500
TestData.DeviceIdentifier1,
496501
TestData.OperatorIdentifier1,
502+
TestData.CustomerEmailAddress,
497503
TestData.AdditionalTransactionMetaData,
498504
CancellationToken.None);
499505

@@ -532,6 +538,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_InvalidMerchan
532538
TestData.TransactionNumber,
533539
TestData.DeviceIdentifier1,
534540
TestData.OperatorIdentifier1,
541+
TestData.CustomerEmailAddress,
535542
TestData.AdditionalTransactionMetaData,
536543
CancellationToken.None);
537544

@@ -570,6 +577,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_EstateWithEmpt
570577
TestData.TransactionNumber,
571578
TestData.DeviceIdentifier,
572579
TestData.OperatorIdentifier1,
580+
TestData.CustomerEmailAddress,
573581
TestData.AdditionalTransactionMetaData,
574582
CancellationToken.None);
575583

@@ -608,6 +616,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_EstateWithNull
608616
TestData.TransactionNumber,
609617
TestData.DeviceIdentifier,
610618
TestData.OperatorIdentifier1,
619+
TestData.CustomerEmailAddress,
611620
TestData.AdditionalTransactionMetaData,
612621
CancellationToken.None);
613622

@@ -646,6 +655,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_OperatorNotSup
646655
TestData.TransactionNumber,
647656
TestData.DeviceIdentifier,
648657
TestData.OperatorIdentifier2,
658+
TestData.CustomerEmailAddress,
649659
TestData.AdditionalTransactionMetaData,
650660
CancellationToken.None);
651661

@@ -684,6 +694,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_MerchantWithEm
684694
TestData.TransactionNumber,
685695
TestData.DeviceIdentifier,
686696
TestData.OperatorIdentifier1,
697+
TestData.CustomerEmailAddress,
687698
TestData.AdditionalTransactionMetaData,
688699
CancellationToken.None);
689700

@@ -722,6 +733,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_MerchantWithNu
722733
TestData.TransactionNumber,
723734
TestData.DeviceIdentifier,
724735
TestData.OperatorIdentifier1,
736+
TestData.CustomerEmailAddress,
725737
TestData.AdditionalTransactionMetaData,
726738
CancellationToken.None);
727739

@@ -760,6 +772,7 @@ public async Task TransactionDomainService_ProcessSaleTransaction_OperatorNotSup
760772
TestData.TransactionNumber,
761773
TestData.DeviceIdentifier,
762774
TestData.OperatorIdentifier1,
775+
TestData.CustomerEmailAddress,
763776
TestData.AdditionalTransactionMetaData,
764777
CancellationToken.None);
765778

TransactionProcessor.BusinessLogic/RequestHandlers/TransactionRequestHandler.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
/// <summary>
1111
///
1212
/// </summary>
13-
/// <seealso cref="MediatR.IRequestHandler{TransactionProcessor.BusinessLogic.Requests.ProcessLogonTransactionRequest, TransactionProcessor.Models.ProcessLogonTransactionResponse}" />
13+
/// <seealso cref="MediatR.IRequestHandler{ProcessLogonTransactionRequest, ProcessLogonTransactionResponse}" />
1414
/// <seealso cref="" />
1515
public class TransactionRequestHandler : IRequestHandler<ProcessLogonTransactionRequest, ProcessLogonTransactionResponse>,
1616
IRequestHandler<ProcessSaleTransactionRequest, ProcessSaleTransactionResponse>
@@ -74,6 +74,7 @@ public async Task<ProcessSaleTransactionResponse> Handle(ProcessSaleTransactionR
7474
request.TransactionNumber,
7575
request.DeviceIdentifier,
7676
request.OperatorIdentifier,
77+
request.CustomerEmailAddress,
7778
request.AdditionalTransactionMetadata,
7879
cancellationToken);
7980

0 commit comments

Comments
 (0)