public void BankDictionaryByLocalBankCodeIsCorrectlyFilledWhenInstantiatingSEPAIdentificatorCodesWithCSVFile()
 {
     BankCodes bankCodesCSVInitialized =
         new BankCodes(@"CSVFiles\SpanishBankCodes.csv", BankCodes.BankCodesFileFormat.CSV);
     Assert.AreEqual("BANKINTER, S.A.", bankCodesCSVInitialized.BankDictionaryByLocalBankCode["0128"].BankName);
     Assert.AreEqual("CAIXESBBXXX", bankCodesCSVInitialized.BankDictionaryByLocalBankCode["2100"].BankBIC);
 }
 public void BankCodesXMLFileIsWellReaded()
 {
     BankCodes bankCodes = new BankCodes();
     BankCode[] spanisBankCodes = bankCodes.ReadBankBicCodesXMLFile(@"XMLFiles\SpanishBankCodes.xml");
     Assert.AreEqual(spanisBankCodes[0].BankBIC, "ABNAESMMXXX");
     Assert.AreEqual(spanisBankCodes[0].BankName, "THE ROYAL BANK OF SCOTLAND PLC, SUCURSAL EN ESPAÑA.");
     Assert.AreEqual(spanisBankCodes[0].LocalBankCode, "0156");
     Assert.AreEqual(spanisBankCodes[1].BankBIC, "AHCFESMMXXX");
 }
 public void BankCodesCanBeAddedToTictionariesAfterInitialization()
 {
     BankCodes bankCodesEmpty = new BankCodes();
     List<BankCode> bankCodesList = new List<BankCode>();
     bankCodesList.Add(new BankCode("0128", "BANKINTER, S.A.", "BKBKESMMXXX"));
     bankCodesList.Add(new BankCode("2100", "CAIXABANK, S.A.", "CAIXESBBXXX"));
     bankCodesEmpty.AddBankCodesToDictionaries(bankCodesList);
     Assert.AreEqual(2, bankCodesEmpty.BankDictionaryByBIC.Count);
     Assert.AreEqual("CAIXESBBXXX", bankCodesEmpty.BankDictionaryByLocalBankCode["2100"].BankBIC);
 }
 public void BankCodesWithDuplicatedValuesInLocalBankCodeOrBICAreNotAdded()
 {
     BankCodes bankCodesEmpty = new BankCodes();
     List<BankCode> banksList = new List<BankCode>();
     banksList.Add(new BankCode("0128", "BANKINTER, S.A.", "BKBKESMMXXX"));
     banksList.Add(new BankCode("2100", "CAIXABANK, S.A.", "CAIXESBBXXX"));
     bankCodesEmpty.AddBankCodesToDictionaries(banksList);
     Assert.AreEqual(2, bankCodesEmpty.BankDictionaryByBIC.Count);
     List<BankCode> listOfBanksToAdd = new List<BankCode>();
     BankCode bankWithDuplicatedLocalBankCode = new BankCode("0128", "DUPLICATED LOCAL BANK CODE", "DBNKCMMXXX");
     BankCode bankWithDuplicatedBIC = new BankCode("9009", "DUPLICATED BIC", "CAIXESBBXXX");
     BankCode corrrectBank = new BankCode("0156", "THE ROYAL BANK OF SCOTLAND PLC, SUCURSAL EN ESPAÑA.", "ABNAESMMXXX");
     listOfBanksToAdd.Add(bankWithDuplicatedLocalBankCode);
     listOfBanksToAdd.Add(bankWithDuplicatedBIC);
     listOfBanksToAdd.Add(corrrectBank);
     bankCodesEmpty.AddBankCodesToDictionaries(listOfBanksToAdd);
     Assert.AreEqual(3, bankCodesEmpty.BankDictionaryByBIC.Count);
     Assert.AreEqual("BKBKESMMXXX", bankCodesEmpty.BankDictionaryByLocalBankCode["0128"].BankBIC);
     Assert.AreEqual("ABNAESMMXXX", bankCodesEmpty.BankDictionaryByLocalBankCode["0156"].BankBIC);
 }
        public static void ClassInit(TestContext context)
        {
            SEPAAttributes sEPAAttributes = new SEPAAttributes();
            bankCodes = new BankCodes(@"XMLFiles\SpanishBankCodes.xml", BankCodes.BankCodesFileFormat.XML);
            creditor = new Creditor_POCOTestClass(
                "Real Club Náutico de Gran Canaria",
                sEPAAttributes.AT02CreditorIdentifier("ES", "G35008770", "777"),
                sEPAAttributes.AT07IBAN_Spanish("12345678061234567890"));
            creditorAgent = new CreditorAgent_POCOTestClass(bankCodes.BankDictionaryByLocalBankCode["3183"].BankBIC);
            directDebitMandateInfo1 = new DirectDebitTransactionInfo_POCOTestClass(
                "Pedro Piqueras",
                "InternalID2510201300099",
                new string[] { "Cuota Mensual Numerario Septiembre 2013", "Cuota Mensual Numerario Octubre 2013" },
                (double)158,
                sEPAAttributes.AT01MandateReference("000001102345"),
                sEPAAttributes.AT07IBAN_Spanish("01000100709999999999"),
                sEPAAttributes.AT25DateOfMandateSigning_MigrationValue,
                sEPAAttributes.AT01MandateReference("000001101111"),
                sEPAAttributes.AT07IBAN_Spanish("01000100761234567890"));

            directDebitMandateInfo2 = new DirectDebitTransactionInfo_POCOTestClass(
                "Manuel Moreno",
                "InternalID2510201300100",
                new string[] { "Cuota Mensual Numerario Octubre 2013" },
                (double)79,
                sEPAAttributes.AT01MandateReference("000001102346"),
                sEPAAttributes.AT07IBAN_Spanish("01821234861234567890"),
                sEPAAttributes.AT25DateOfMandateSigning_MigrationValue,
                null,
                null);

            directDebitMandateInfoList = new List<DirectDebitTransactionInfo_POCOTestClass>() { directDebitMandateInfo1, directDebitMandateInfo2 };

            xMLNamespace = "urn:iso:std:iso:20022:tech:xsd:pain.008.001.02";
            xSDFilePath = @"XSDFiles\pain.008.001.02.xsd";
        }
 public void EmptyBankDictionaryByLocalBankCodeIsCreatedWhenInstantiatingSEPAIdentificatorCodes()
 {
     BankCodes bankCodes = new BankCodes();
     Assert.AreEqual(0, bankCodes.BankDictionaryByLocalBankCode.Count);
 }
        public static void ClassInit(TestContext context)
        {
            BillingSequenceNumbersMock invoiceDataManagerMock = new BillingSequenceNumbersMock();
            BillingDataManager.Instance.SetBillingSequenceNumberCollaborator(invoiceDataManagerMock);
            BillingDataManager.Instance.InvoiceSequenceNumber=5000;
            invoicesManager = new InvoicesManager();

            clubMembers = new Dictionary<string, ClubMember>()
            {
                {"00001", new ClubMember("00001", "Francisco", "Gómez-Caldito", "Viseas")},
                {"00002", new ClubMember("00002", "Pedro", "Pérez", "Gómez")}
            };

            creditor = new Creditor("G35008770", "Real Club Náutico de Gran Canaria");
            creditorAgent = new CreditorAgent(new BankCode("2100", "CaixaBank","CAIXESBBXXX"));
            directDebitInitiationContract = new DirectDebitInitiationContract(
                new BankAccount(new InternationalAccountBankNumberIBAN("ES5621001111301111111111")),
                creditor.NIF,
                "777",
                creditorAgent);

            var directDebitmandateslist = new[]
            {
                new {clubMemberID = "00001", internalReference = 1234, ccc = "21002222002222222222" },
                new {clubMemberID = "00002", internalReference = 1235, ccc = "21003333802222222222" }
            };

            foreach (var ddM in directDebitmandateslist)
            {
                DirectDebitMandate directDebitMandate = new DirectDebitMandate(
                    ddM.internalReference,
                    new DateTime(2013,11,11),
                    new BankAccount(new ClientAccountCodeCCC(ddM.ccc)),
                    clubMembers[ddM.clubMemberID].FullName);
                clubMembers[ddM.clubMemberID].AddDirectDebitMandate(directDebitMandate);
            }

            var billsList = new[]
            {
                new {clubMemberID = "00001", Amount = 79, transactionDescription = "Cuota Social Octubre 2013" },
                new {clubMemberID = "00002", Amount = 79, transactionDescription="Cuota Social Octubre 2013" },
                new {clubMemberID = "00002", Amount = 79, transactionDescription="Cuota Social Noviembre 2013"}
            };

            foreach (var bill in billsList)
            {
                List<Transaction> transaction = new List<Transaction>()
                {
                    new Transaction(bill.transactionDescription,1,bill.Amount,new Tax("NoTAX",0),0)
                };
                ClubMember clubMember = clubMembers[bill.clubMemberID];
                InvoiceCustomerData invoiceCustomerData = new InvoiceCustomerData(clubMember);
                Invoice invoice = new Invoice(invoiceCustomerData, transaction, new DateTime(2013, 11, 11));
                invoicesManager.AddInvoiceToClubMember(invoice, clubMember);
            }

            spanishBankCodes = new BankCodes(@"XMLFiles\SpanishBankCodes.xml", BankCodes.BankCodesFileFormat.XML);
        }