public ManageInvoicesFeatureSteps(
     MembersManagementContextData membersManagementContextData,
     InvoiceContextData invoiceContextData)
 {
     this.membersManagementContextData = membersManagementContextData;
     this.invoiceContextData = invoiceContextData;
     invoicesManager = new InvoicesManager();
 }
        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);
        }
 public GeneratingDirectDebitRemmitancesFeatureSteps(
     MembersManagementContextData membersManagementContextData,
     InvoiceContextData invoiceContextData)
 {
     this.membersManagementContextData = membersManagementContextData;
     this.invoiceContextData = invoiceContextData;
     invoicesManager = new InvoicesManager();
     directDebitRemittancesManager = new DirectDebitRemittancesManager();
 }
 public void AnInvoiceIsCorrectlyCancelled()
 {
     clubMemberDataManager.MemberIDSequenceNumber = 5;
     ClubMember clubMember = new ClubMember("Francisco", "Gomez-Caldito", "Viseas");
     InvoiceCustomerData invoiceCustomerData = new InvoiceCustomerData(clubMember);
     Invoice invoice = new Invoice(
         new InvoiceCustomerData(clubMember),
         new List<Transaction>() { new Transaction("Kajak Rent", 1, 50, new Tax("No Tax", 0), 0) },
         DateTime.Now);
     InvoicesManager invoicesManager = new InvoicesManager();
     invoicesManager.AddInvoiceToClubMember(invoice, clubMember);
     invoicesManager.CancelInvoice(invoice, clubMember);
     Assert.AreEqual(Invoice.InvoicePaymentState.Cancelled, invoice.InvoiceState);
 }
        public void AnInvoiceIsCorrectlyAdded()
        {
            clubMemberDataManager.MemberIDSequenceNumber = 5;
            ClubMember clubMember = new ClubMember("Francisco", "Gomez-Caldito", "Viseas");
            Assert.AreEqual(0, clubMember.InvoicesList.Count);

            InvoiceCustomerData invoiceCustomerData = new InvoiceCustomerData(clubMember);
            Invoice invoice = new Invoice(
                new InvoiceCustomerData(clubMember),
                new List<Transaction>() { new Transaction("Kajak Rent", 1, 50, new Tax("No Tax", 0), 0) },
                DateTime.Now);
            InvoicesManager invoicesManager = new InvoicesManager();
            invoicesManager.AddInvoiceToClubMember(invoice, clubMember);
            Assert.IsNotNull(clubMember.InvoicesList[invoice.InvoiceID]);
        }
 public void WhenCancellingAnInvoiceAnAmendingInvoiceIsCreatedAndAssignedToTheDebtor()
 {
     clubMemberDataManager.MemberIDSequenceNumber = 5;
     billDataManager.InvoiceSequenceNumber = 5;
     ClubMember clubMember = new ClubMember("Francisco", "Gomez-Caldito", "Viseas");
     InvoiceCustomerData invoiceCustomerData = new InvoiceCustomerData(clubMember);
     Invoice invoice = new Invoice(
         new InvoiceCustomerData(clubMember),
         new List<Transaction>() { new Transaction("Kajak Rent", 1, 50, new Tax("No Tax", 0), 0) },
         DateTime.Now);
     InvoicesManager invoicesManager = new InvoicesManager();
     invoicesManager.AddInvoiceToClubMember(invoice, clubMember);
     Assert.AreEqual(0, clubMember.AmendingInvoicesList.Count);
     invoicesManager.CancelInvoice(invoice, clubMember);
     Assert.IsNotNull(clubMember.AmendingInvoicesList["AMN2013000005"]);
 }
        public void Setup()
        {
            taxesDictionary = new Dictionary<string, Tax>{
                {"No IGIC", new Tax("No IGIC",0)},
                {"IGIC Reducido 1", new Tax("IGIC Reducido 1",2.75)},
                {"IGIC Reducido 2", new Tax("IGIC Reducido 2",3)},
                {"IGIC General", new Tax("IGIC General",7)},
                {"IGIC Incrementado 1", new Tax("IGIC Incrementado 1",9.50)},
                {"IGIC Incrementado 2", new Tax("IGIC Incrementado 2",13.50)},
                {"IGIC Especial", new Tax("IGIC Especial",20)}};

            transactionsList = new List<Transaction>()
            {
                {new Transaction("Monthly Fee",1,80,taxesDictionary["No IGIC"],0)},
                {new Transaction("Renting a Kajak",1,50,taxesDictionary["No IGIC"],0)},
                {new Transaction("Blue cup",2,10,taxesDictionary["No IGIC"],0)},
                {new Transaction("BIG Mouring",1,500,taxesDictionary["No IGIC"],0)}
            };

            clubMember = new ClubMember("0002", "Francisco", "Gomez", "");
            invoiceCustomerData= new InvoiceCustomerData(clubMember);
            invoicesManager = new InvoicesManager();
        }