public async Task CreateFileData_Always_CreatesFileData() { // Arrange CustomerFile customerFile = new CustomerFile("WEE", (ulong)12345); var customerFileGeneratorResult = new IbisFileGeneratorResult <CustomerFile>(customerFile, A.Dummy <List <Exception> >()); IIbisCustomerFileGenerator customerFileGenerator = A.Fake <IIbisCustomerFileGenerator>(); A.CallTo(() => customerFileGenerator.CreateAsync(A <ulong> ._, A <InvoiceRun> ._)) .Returns(customerFileGeneratorResult); TransactionFile transactionFile = new TransactionFile("WEE", (ulong)12345); var ibisFileGeneratorResult = new IbisFileGeneratorResult <TransactionFile>(transactionFile, A.Dummy <List <Exception> >()); IIbisTransactionFileGenerator transactionFileGenerator = A.Fake <IIbisTransactionFileGenerator>(); A.CallTo(() => transactionFileGenerator.CreateAsync(A <ulong> ._, A <InvoiceRun> ._)) .Returns(ibisFileGeneratorResult); IIbisFileDataErrorTranslator errorTranslator = A.Dummy <IIbisFileDataErrorTranslator>(); IbisFileDataGenerator generator = new IbisFileDataGenerator( customerFileGenerator, transactionFileGenerator, errorTranslator); // Act var result = await generator.CreateFileDataAsync(A.Dummy <ulong>(), A.Dummy <InvoiceRun>()); var ibistFileData = result.IbisFileData; // Assert Assert.NotNull(ibistFileData); Assert.False(string.IsNullOrEmpty(ibistFileData.CustomerFileData)); Assert.False(string.IsNullOrEmpty(ibistFileData.TransactionFileData)); }
public async Task CreateFileData_WithErrorGeneratingIbisFile_TranslatesError_AndReturnNoIbisFileData() { // Arrange ulong fileID = 123; var customerFile = new CustomerFile("WEE", fileID); var customerFileGeneratorResult = new IbisFileGeneratorResult <CustomerFile>(customerFile, A.Dummy <List <Exception> >()); var customerFileGenerator = A.Fake <IIbisCustomerFileGenerator>(); A.CallTo(() => customerFileGenerator.CreateAsync(A <ulong> ._, A <InvoiceRun> ._)) .Returns(customerFileGeneratorResult); var transactionFile = new TransactionFile("WEE", (ulong)12345); var error = new Exception(); var transactionFileGeneratorResult = new IbisFileGeneratorResult <TransactionFile>(transactionFile, new List <Exception> { error }); var transactionFileGenerator = A.Fake <IIbisTransactionFileGenerator>(); A.CallTo(() => transactionFileGenerator.CreateAsync(A <ulong> ._, A <InvoiceRun> ._)) .Returns(transactionFileGeneratorResult); var errorTranslator = A.Fake <IIbisFileDataErrorTranslator>(); A.CallTo(() => errorTranslator.MakeFriendlyErrorMessages(A <List <Exception> > ._)) .Returns(new List <string> { "error" }); IbisFileDataGenerator generator = new IbisFileDataGenerator( customerFileGenerator, transactionFileGenerator, errorTranslator); // Act var result = await generator.CreateFileDataAsync(fileID, A.Dummy <InvoiceRun>()); // Assert Assert.NotEmpty(result.Errors); Assert.Null(result.IbisFileData); }
public async Task CreateFileData_WithFileID_CreatesFilesWithCorrectFileNames() { // Arrange ulong fileID = 123; CustomerFile customerFile = new CustomerFile("WEE", (ulong)12345); var customerFileGeneratorResult = new IbisFileGeneratorResult <CustomerFile>(customerFile, A.Dummy <List <Exception> >()); IIbisCustomerFileGenerator customerFileGenerator = A.Fake <IIbisCustomerFileGenerator>(); A.CallTo(() => customerFileGenerator.CreateAsync(A <ulong> ._, A <InvoiceRun> ._)) .Returns(customerFileGeneratorResult); TransactionFile transactionFile = new TransactionFile("WEE", (ulong)12345); var ibisFileGeneratorResult = new IbisFileGeneratorResult <TransactionFile>(transactionFile, A.Dummy <List <Exception> >()); IIbisTransactionFileGenerator transactionFileGenerator = A.Fake <IIbisTransactionFileGenerator>(); A.CallTo(() => transactionFileGenerator.CreateAsync(A <ulong> ._, A <InvoiceRun> ._)) .Returns(ibisFileGeneratorResult); IIbisFileDataErrorTranslator errorTranslator = A.Dummy <IIbisFileDataErrorTranslator>(); IbisFileDataGenerator generator = new IbisFileDataGenerator( customerFileGenerator, transactionFileGenerator, errorTranslator); // Act var result = await generator.CreateFileDataAsync(fileID, A.Dummy <InvoiceRun>()); var ibistFileData = result.IbisFileData; // Assert Assert.NotNull(ibistFileData); Assert.Equal("WEEHC00123.dat", ibistFileData.CustomerFileName); Assert.Equal("WEEHI00123.dat", ibistFileData.TransactionFileName); }