public async Task EmptyStringPassedOk(string inputData) { var strategy = new CsvParsingStrategy(); var results = await strategy.ParseTransactionsAsync(new MemoryStream(Encoding.UTF8.GetBytes(inputData))) as CsvParsingResult; Assert.True(results.Success); Assert.Empty(results.Transactions); }
public async Task InvalidStatusError(string inputData) { var strategy = new CsvParsingStrategy(); var results = await strategy.ParseTransactionsAsync(new MemoryStream(Encoding.UTF8.GetBytes(inputData))) as CsvParsingResult; Assert.False(results.Success); Assert.Equal($"Row 1 validation errors: CsvMappingError (ColumnIndex = 4, Value = Column 4 with Value 'SomeStatus' cannot be converted, UnmappedRow = Invoice0000001|1,000.00|ZZZ|20/02/2019 12:33:16|SomeStatus)", results.Error); }
public async Task IdLengthFor51Fails(string inputData) { var strategy = new CsvParsingStrategy(); var results = await strategy.ParseTransactionsAsync(new MemoryStream(Encoding.UTF8.GetBytes(inputData))) as CsvParsingResult; Assert.False(results.Success); Assert.Equal($"Row 1 validation errors: Id field is over 50 characters\r\nRow 2 validation errors: Id field is over 50 characters", results.Error); _outputHelper.WriteLine(string.Join(Environment.NewLine, ((CsvParsingResult)results).CsvTransactions.Select(t => t.ToString()))); }
public async Task IdLengthFor50PassesOk(string inputData) { var strategy = new CsvParsingStrategy(); var results = await strategy.ParseTransactionsAsync(new MemoryStream(Encoding.UTF8.GetBytes(inputData))) as CsvParsingResult; Assert.True(results.Success); Assert.Single(results.Transactions); _outputHelper.WriteLine(string.Join(Environment.NewLine, results.Transactions.Select(t => t.ToString()))); }
public async Task InvalidCurrencyError(string inputData) { var strategy = new CsvParsingStrategy(); var results = await strategy.ParseTransactionsAsync(new MemoryStream(Encoding.UTF8.GetBytes(inputData))) as CsvParsingResult; Assert.False(results.Success); Assert.Equal($"Row 1 validation errors: Invalid currency code ZZZ", results.Error); _outputHelper.WriteLine(string.Join(Environment.NewLine, ((CsvParsingResult)results).CsvTransactions.Select(t => t.ToString()))); }
public async Task FieldDetailsReadOk(string inputData) { var strategy = new CsvParsingStrategy(); var results = await strategy.ParseTransactionsAsync(new MemoryStream(Encoding.UTF8.GetBytes(inputData))) as CsvParsingResult; Assert.True(results.Success); Assert.Single(results.Transactions); Assert.Equal("Invoice0000001", results.Transactions[0].Id); Assert.Equal(1000.00M, results.Transactions[0].Amount); Assert.Equal("USD", results.Transactions[0].CurrencyCode); Assert.Equal(new DateTime(2019, 02, 20, 00, 33, 16).ToUniversalTime(), results.Transactions[0].TransactionDateUtc); Assert.Equal(CurrencyTransactionStatus.A, results.Transactions[0].Status); _outputHelper.WriteLine(string.Join(Environment.NewLine, results.Transactions.Select(t => t.ToString()))); }