public void FileAggregate_RecordFileLineAsRejected_FileLineUpdatedAsRejected() { FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId); fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime); fileAggregate.AddFileLine(TestData.FileLine); fileAggregate.RecordFileLineAsRejected(TestData.LineNumber, TestData.RejectionReason); FileDetails fileDetails = fileAggregate.GetFile(); fileDetails.FileLines.ShouldNotBeNull(); fileDetails.FileLines.ShouldNotBeEmpty(); fileDetails.FileLines.ShouldHaveSingleItem(); fileDetails.FileLines.Single().LineNumber.ShouldBe(1); fileDetails.FileLines.Single().LineData.ShouldBe(TestData.FileLine); fileDetails.FileLines.Single().ProcessingResult.ShouldBe(ProcessingResult.Rejected); fileDetails.FileLines.Single().RejectedReason.ShouldBe(TestData.RejectionReason); fileDetails.ProcessingCompleted.ShouldBeTrue(); fileDetails.ProcessingSummary.ShouldNotBeNull(); fileDetails.ProcessingSummary.TotalLines.ShouldBe(1); fileDetails.ProcessingSummary.NotProcessedLines.ShouldBe(0); fileDetails.ProcessingSummary.FailedLines.ShouldBe(0); fileDetails.ProcessingSummary.SuccessfullyProcessedLines.ShouldBe(0); fileDetails.ProcessingSummary.IgnoredLines.ShouldBe(0); fileDetails.ProcessingSummary.RejectedLines.ShouldBe(1); }
public static FileAggregate GetCreatedFileAggregate() { FileAggregate fileAggregate = new FileAggregate(); fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.OriginalFileName, TestData.FileUploadedDateTime); return(fileAggregate); }
public static FileAggregate GetFileAggregateWithBlankLine() { FileAggregate fileAggregate = new FileAggregate(); fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.OriginalFileName, TestData.FileUploadedDateTime); fileAggregate.AddFileLine(String.Empty); return(fileAggregate); }
public void FileAggregate_CreateFile_FileAlreadyCreated_NoErrorThrown() { FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId); fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime); Should.NotThrow(() => { fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime); }); }
public async Task <Unit> Handle(ProcessUploadedFileRequest request, CancellationToken cancellationToken) { // TODO: Should the file id be generated from the file uploaded to protect against duplicate files??? FileAggregate fileAggregate = await this.FileAggregateRepository.GetLatestVersion(request.FileId, cancellationToken); fileAggregate.CreateFile(request.FileImportLogId, request.EstateId, request.MerchantId, request.UserId, request.FileProfileId, request.FilePath, request.FileUploadedDateTime); await this.FileAggregateRepository.SaveChanges(fileAggregate, cancellationToken); return(new Unit()); }
public void FileAggregate_RecordFileLineAsRejected_LineNotFound_ErrorThrown() { FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId); fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime); fileAggregate.AddFileLine(TestData.FileLine); Should.Throw <NotFoundException>(() => { fileAggregate.RecordFileLineAsRejected(TestData.NotFoundLineNumber, TestData.RejectionReason); }); }
public void FileAggregate_RecordFileLineAsRejected_FileHasNoLine_ErrorThrown() { FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId); fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime); Should.Throw <InvalidOperationException>(() => { fileAggregate.RecordFileLineAsRejected(TestData.LineNumber, TestData.RejectionReason); }); }
public void FileAggregate_RecordFileLineAsFailed_FileHasNoLines_ErrorThrown() { FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId); fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime); Should.Throw <InvalidOperationException>(() => { fileAggregate.RecordFileLineAsFailed(TestData.LineNumber, TestData.TransactionId, TestData.ResponseCodeFailed, TestData.ResponseMessageFailed); }); }
public static FileAggregate GetFileAggregateWithLinesAlreadyProcessed() { FileAggregate fileAggregate = new FileAggregate(); fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.OriginalFileName, TestData.FileUploadedDateTime); fileAggregate.AddFileLine("D,1,2"); fileAggregate.AddFileLine("D,1,2"); fileAggregate.AddFileLine("D,1,2"); fileAggregate.AddFileLine("D,1,2"); fileAggregate.RecordFileLineAsSuccessful(1, TestData.TransactionId); fileAggregate.RecordFileLineAsRejected(2, TestData.RejectionReason); fileAggregate.RecordFileLineAsFailed(3, TestData.TransactionId, "-1", "Failed"); fileAggregate.RecordFileLineAsIgnored(4); return(fileAggregate); }
public void FileAggregate_CreateFile_FileIsCreated() { FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId); fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime); fileAggregate.IsCreated.ShouldBeTrue(); FileDetails fileDetails = fileAggregate.GetFile(); fileDetails.ShouldNotBeNull(); fileDetails.FileId.ShouldBe(TestData.FileId); fileDetails.FileImportLogId.ShouldBe(TestData.FileImportLogId); fileDetails.EstateId.ShouldBe(TestData.EstateId); fileDetails.MerchantId.ShouldBe(TestData.MerchantId); fileDetails.UserId.ShouldBe(TestData.UserId); fileDetails.FileProfileId.ShouldBe(TestData.FileProfileId); fileDetails.FileLocation.ShouldBe(TestData.FileLocation); fileDetails.FileLines.ShouldBeEmpty(); fileDetails.ProcessingCompleted.ShouldBeFalse(); }
public void FileAggregate_AddFileLine_FileLineAdded() { FileAggregate fileAggregate = FileAggregate.Create(TestData.FileId); fileAggregate.CreateFile(TestData.FileImportLogId, TestData.EstateId, TestData.MerchantId, TestData.UserId, TestData.FileProfileId, TestData.FileLocation, TestData.FileUploadedDateTime); fileAggregate.AddFileLine(TestData.FileLine); FileDetails fileDetails = fileAggregate.GetFile(); fileDetails.FileLines.ShouldNotBeNull(); fileDetails.FileLines.ShouldNotBeEmpty(); fileDetails.FileLines.ShouldHaveSingleItem(); fileDetails.FileLines.Single().LineData.ShouldBe(TestData.FileLine); fileDetails.ProcessingCompleted.ShouldBeFalse(); fileDetails.ProcessingSummary.ShouldNotBeNull(); fileDetails.ProcessingSummary.TotalLines.ShouldBe(1); fileDetails.ProcessingSummary.NotProcessedLines.ShouldBe(1); fileDetails.ProcessingSummary.FailedLines.ShouldBe(0); fileDetails.ProcessingSummary.SuccessfullyProcessedLines.ShouldBe(0); fileDetails.ProcessingSummary.IgnoredLines.ShouldBe(0); }