public void Ing() { var header = new Separator("0000 01INGBNL2AXXXX00001", "0000 01INGBNL2AXXXX00001", "940 00"); var footer = new Separator("XXX"); var format = new GenericFormat(header, footer); var sample = GetSample(format, "Raptorious.SharpMt940Lib.Tests.Samples.ing.txt"); Assert.That(sample.Count, Is.EqualTo(1)); var csm1 = sample.Skip(0).Take(1).First(); #region Customer Statement Message 1 Assert.That(csm1.Account, Is.EqualTo("0000000000")); Assert.That(csm1.ClosingAvailableBalance, Is.Null); Assert.That(csm1.ClosingBalance.Balance, Is.EqualTo(new Money("3,47", new Currency("EUR"), CultureInfo.GetCultureInfo("nl-NL")))); Assert.That(csm1.ClosingBalance.Currency, Is.EqualTo(new Currency("EUR"))); Assert.That(csm1.ClosingBalance.DebitCredit, Is.EqualTo(DebitCredit.Credit)); Assert.That(csm1.ClosingBalance.EntryDate, Is.EqualTo(new DateTime(2010, 07, 23))); Assert.That(csm1.Description, Is.EqualTo("D000004C000002D25,24C28,71")); Assert.That(csm1.ForwardAvailableBalance, Is.Null); Assert.That(csm1.OpeningBalance.Balance, Is.EqualTo(new Money("0,00", new Currency("EUR"), CultureInfo.GetCultureInfo("nl-NL")))); Assert.That(csm1.OpeningBalance.Currency, Is.EqualTo(new Currency("EUR"))); Assert.That(csm1.OpeningBalance.DebitCredit, Is.EqualTo(DebitCredit.Credit)); Assert.That(csm1.OpeningBalance.EntryDate, Is.EqualTo(new DateTime(2010, 07, 22))); Assert.That(csm1.RelatedMessage, Is.Null); Assert.That(csm1.SequenceNumber, Is.EqualTo(0)); Assert.That(csm1.StatementNumber, Is.EqualTo(100)); Assert.That(csm1.TransactionReference, Is.EqualTo("MPBZ")); Assert.That(csm1.Transactions.Count, Is.EqualTo(6)); var transaction = csm1.Transactions.Skip(0).Take(1).First(); Assert.That(transaction.Amount, Is.EqualTo(new Money("25,03", new Currency("EUR"), CultureInfo.GetCultureInfo("nl-NL")))); Assert.That(transaction.DebitCredit, Is.EqualTo(DebitCredit.Credit)); Assert.That(transaction.Description, Is.EqualTo(@"0111111111 ING Bank N.V. inzake TEST EJ004GREENP29052010T1137")); Assert.That(transaction.EntryDate, Is.Null); Assert.That(transaction.FundsCode, Is.EqualTo(string.Empty)); Assert.That(transaction.Reference, Is.EqualTo("NONREF")); Assert.That(transaction.TransactionType, Is.EqualTo("NOV ")); Assert.That(transaction.Value, Is.EqualTo("100722C25,03NOV NONREF")); Assert.That(transaction.ValueDate, Is.EqualTo(new DateTime(2010, 07, 22))); var transaction2 = csm1.Transactions.Skip(1).Take(1).First(); Assert.That(transaction2.Amount, Is.EqualTo(new Money("3,03", new Currency("EUR"), CultureInfo.GetCultureInfo("nl-NL")))); Assert.That(transaction2.DebitCredit, Is.EqualTo(DebitCredit.Debit)); Assert.That(transaction2.Description, Is.EqualTo(@"0111111111 GPSEOUL SPOEDBETALING MPBZS1016000047 GPSEOUL")); Assert.That(transaction2.EntryDate, Is.Null); Assert.That(transaction2.FundsCode, Is.EqualTo(string.Empty)); Assert.That(transaction2.Reference, Is.EqualTo("NONREF")); Assert.That(transaction2.TransactionType, Is.EqualTo("NOV ")); Assert.That(transaction2.Value, Is.EqualTo("100722D3,03NOV NONREF")); Assert.That(transaction2.ValueDate, Is.EqualTo(new DateTime(2010, 07, 22))); #endregion }
public void SNS() { var header = new Separator("{1:F01SNSBNL2AXXXX0000000000}{2:O94000000000000000000000000000000000000000N}{3:}{4:"); var footer = new Separator("-}{5:}"); var format = new GenericFormat(header, footer); var parsedData = GetSample(format, "Raptorious.SharpMt940Lib.Tests.Samples.sns.txt"); var dataList = parsedData.ToList(); Assert.That(dataList.Count, Is.EqualTo(1)); }
public ICollection <Transaction> GetTransactions() { try { var fileName = $@"{Directory.GetFiles(pathBase)[0]}"; var header = new Separator("STARTUMSE"); var trailer = new Separator("-"); var genericFormat = new GenericFormat(header, trailer); var parsed = Mt940Parser.Parse(genericFormat, fileName, CultureInfo.CurrentCulture); var transactions = parsed.Select(x => x.Transactions).FirstOrDefault(); return(transactions); } catch (Exception ex) { throw new Exception(ex.Message); } }
public void GetTransactionsTests_GetBankStatement_ReturnTransactions() { try { var fileName = $@"{Directory.GetFiles(PathBase)[0]}"; var header = new Separator("STARTUMSE"); var trailer = new Separator("-"); var genericFormat = new GenericFormat(header, trailer); var parsed = Mt940Parser.Parse(genericFormat, fileName, CultureInfo.CurrentCulture); var transactions = parsed.Select(x => x.Transactions).FirstOrDefault(); var transaction = transactions.FirstOrDefault(); Assert.That(transactions.Count, Is.Not.Null); Assert.That(transactions.Contains(transaction), Is.True); } catch (Exception) { throw new Exception(); } }
public void GetExpensesTests_TakeTransactions_ReturnExpenses() { try { var fileName = $@"{Directory.GetFiles(PathBase)[0]}"; var header = new Separator("STARTUMSE"); var trailer = new Separator("-"); var genericFormat = new GenericFormat(header, trailer); var parsed = Mt940Parser.Parse(genericFormat, fileName, CultureInfo.CurrentCulture); var transactions = parsed.Select(x => x.Transactions).FirstOrDefault(); var expenses = new List <Expense>(); foreach (var transaction in transactions) { if (transaction.DebitCredit.ToString() == "Debit") { expenses.Add(new Expense { Date = DateTime.Parse(transaction.ValueDate.ToShortDateString()), Amount = decimal.Parse(transaction.Amount.Value.ToString()), Description = transaction.Description, Payee = transaction.Details.Name, Notes = "", Type = ExpenseType.Card }); } } Assert.That(expenses.Count, Is.GreaterThan(0)); Assert.That(expenses[0], Is.Not.Null); } catch (Exception) { throw new Exception(); } }
private bool ValidateFile(string path) { if (!ValidateFilePhysically(path)) { AddFilePhysicalValidationFault(); return(false); } try { var header = new Separator(_headerSeperator); var trailer = new Separator(_trailerSeperator); var genericFomat = new GenericFormat(header, trailer); var parsed = Mt940Parser.Parse(genericFomat, FilePath, CultureInfo.CurrentCulture); } catch (Exception ex) { AddFileLibraryInvalidation(ex); return(false); } return(true); }
public void AbnAmro_US_ServerEnvironment() { System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en-us"); var nlNL = CultureInfo.GetCultureInfo("nl-NL"); var header = new Separator("ABNANL2A", "940", "ABNANL2A"); var footer = new Separator("-"); var format = new GenericFormat(header, footer); var sample = GetSample(format, "Raptorious.SharpMt940Lib.Tests.Samples.abnamro.txt", nlNL); Assert.That(sample.Count, Is.EqualTo(4)); var csm1 = sample.Skip(0).Take(1).First(); #region Customer Statement Message 1 Assert.That(csm1.Account, Is.EqualTo("500950253")); Assert.That(csm1.ClosingAvailableBalance, Is.Null); Assert.That(csm1.ClosingBalance.Balance, Is.EqualTo(new Money("17159,49", new Currency("EUR"), nlNL))); Assert.That(csm1.ClosingBalance.Currency, Is.EqualTo(new Currency("EUR"))); Assert.That(csm1.ClosingBalance.DebitCredit, Is.EqualTo(DebitCredit.Credit)); Assert.That(csm1.ClosingBalance.EntryDate, Is.EqualTo(new DateTime(2009, 06, 24))); Assert.That(csm1.Description, Is.Null); Assert.That(csm1.ForwardAvailableBalance, Is.Null); Assert.That(csm1.OpeningBalance.Balance, Is.EqualTo(new Money("17369,99", new Currency("EUR"), nlNL))); Assert.That(csm1.OpeningBalance.Currency, Is.EqualTo(new Currency("EUR"))); Assert.That(csm1.OpeningBalance.DebitCredit, Is.EqualTo(DebitCredit.Credit)); Assert.That(csm1.OpeningBalance.EntryDate, Is.EqualTo(new DateTime(2009, 06, 23))); Assert.That(csm1.RelatedMessage, Is.Null); Assert.That(csm1.SequenceNumber, Is.EqualTo(1)); Assert.That(csm1.StatementNumber, Is.EqualTo(17501)); Assert.That(csm1.TransactionReference, Is.EqualTo("ABN AMRO BANK NV")); Assert.That(csm1.Transactions.Count, Is.EqualTo(2)); var transaction = csm1.Transactions.Skip(0).Take(1).First(); Assert.That(transaction.Amount, Is.EqualTo(new Money("7,5", new Currency("EUR"), nlNL))); Assert.That(transaction.DebitCredit, Is.EqualTo(DebitCredit.Debit)); Assert.That(transaction.Description, Is.EqualTo(@"GIRO 428428 KPN BV BETALINGSKENM. 000000018503995 5109227317 BETREFT FACTUUR D.D. 20-06-2009 INCL. 1,20 BTW")); Assert.That(transaction.EntryDate, Is.EqualTo(new DateTime(2009, 06, 24))); Assert.That(transaction.FundsCode, Is.EqualTo(string.Empty)); Assert.That(transaction.Reference, Is.EqualTo("NONREF")); Assert.That(transaction.TransactionType, Is.EqualTo("N192")); Assert.That(transaction.Value, Is.EqualTo("0906230624D7,5N192NONREF")); Assert.That(transaction.ValueDate, Is.EqualTo(new DateTime(2009, 06, 23))); var transaction2 = csm1.Transactions.Skip(1).Take(1).First(); Assert.That(transaction2.Amount, Is.EqualTo(new Money("203", new Currency("EUR"), nlNL))); Assert.That(transaction2.DebitCredit, Is.EqualTo(DebitCredit.Debit)); Assert.That(transaction2.Description, Is.EqualTo(@"BEA 23.06.09/22.22 VILLA DORIA SCHOTEN,PAS590")); Assert.That(transaction2.EntryDate, Is.EqualTo(new DateTime(2009, 06, 24))); Assert.That(transaction2.FundsCode, Is.EqualTo(string.Empty)); Assert.That(transaction2.Reference, Is.EqualTo("NONREF")); Assert.That(transaction2.TransactionType, Is.EqualTo("N369")); Assert.That(transaction2.Value, Is.EqualTo("0906230624D203,N369NONREF")); Assert.That(transaction2.ValueDate, Is.EqualTo(new DateTime(2009, 06, 23))); #endregion var csm2 = sample.Skip(1).Take(1).First(); #region Customer Statement Message 2 Assert.That(csm2.Account, Is.EqualTo("500950253")); Assert.That(csm2.ClosingAvailableBalance, Is.Null); Assert.That(csm2.ClosingBalance.Balance, Is.EqualTo(new Money("16131,58", new Currency("EUR"), nlNL))); Assert.That(csm2.ClosingBalance.Currency, Is.EqualTo(new Currency("EUR"))); Assert.That(csm2.ClosingBalance.DebitCredit, Is.EqualTo(DebitCredit.Credit)); Assert.That(csm2.ClosingBalance.EntryDate, Is.EqualTo(new DateTime(2009, 06, 25))); Assert.That(csm2.Description, Is.Null); Assert.That(csm2.ForwardAvailableBalance, Is.Null); Assert.That(csm2.OpeningBalance.Balance, Is.EqualTo(new Money("17159,49", new Currency("EUR"), nlNL))); Assert.That(csm2.OpeningBalance.Currency, Is.EqualTo(new Currency("EUR"))); Assert.That(csm2.OpeningBalance.DebitCredit, Is.EqualTo(DebitCredit.Credit)); Assert.That(csm2.OpeningBalance.EntryDate, Is.EqualTo(new DateTime(2009, 06, 24))); Assert.That(csm2.RelatedMessage, Is.Null); Assert.That(csm2.SequenceNumber, Is.EqualTo(1)); Assert.That(csm2.StatementNumber, Is.EqualTo(17601)); Assert.That(csm2.TransactionReference, Is.EqualTo("ABN AMRO BANK NV")); Assert.That(csm2.Transactions.Count, Is.EqualTo(1)); var csm2_transaction = csm2.Transactions.Skip(0).Take(1).First(); Assert.That(csm2_transaction.Amount, Is.EqualTo(new Money("1027,91", new Currency("EUR"), nlNL))); Assert.That(csm2_transaction.DebitCredit, Is.EqualTo(DebitCredit.Debit)); Assert.That(csm2_transaction.Description, Is.EqualTo(@"64.45.12.113 G.B. ROTTERDAM AANSLAGBILJETNUMMER 30076145 BETALINGSKENMERK 0000 0000 3007 6145 MOZARTLN 136 WOZ2009")); Assert.That(csm2_transaction.EntryDate, Is.EqualTo(new DateTime(2009, 06, 25))); Assert.That(csm2_transaction.FundsCode, Is.EqualTo(string.Empty)); Assert.That(csm2_transaction.Reference, Is.EqualTo("NONREF")); Assert.That(csm2_transaction.TransactionType, Is.EqualTo("N422")); Assert.That(csm2_transaction.Value, Is.EqualTo("0906240625D1027,91N422NONREF")); Assert.That(csm2_transaction.ValueDate, Is.EqualTo(new DateTime(2009, 06, 24))); #endregion }