public void GivenAClubMemberWithADefaultPaymentMethod(Table clientsTable)
 {
     membersManagementContextData.clubMember = new ClubMember(clientsTable.Rows[0]["MemberID"], clientsTable.Rows[0]["Name"], clientsTable.Rows[0]["FirstSurname"], clientsTable.Rows[0]["SecondSurname"]);
     string electronicIBANString = clientsTable.Rows[0]["Spanish IBAN Bank Account"].Replace(" ","").Substring(4);
     InternationalAccountBankNumberIBAN iban = new InternationalAccountBankNumberIBAN(electronicIBANString);
     BankAccount bankAccount = new BankAccount(iban);
     string debtorName = membersManagementContextData.clubMember.FullName;
     DirectDebitMandate directDebitmandate = new DirectDebitMandate(2345, DateTime.Now.Date, bankAccount, debtorName);
     PaymentMethod paymentMethod = new DirectDebitPaymentMethod(directDebitmandate, null);
     membersManagementContextData.clubMember.AddDirectDebitMandate(directDebitmandate);
     membersManagementContextData.clubMember.SetDefaultPaymentMethod(paymentMethod);
 }
 public void WhenTheBillIsPaidByDirectDebit()
 {
     Invoice invoice = (Invoice)ScenarioContext.Current["Invoice"];
     Bill bill = (Bill)ScenarioContext.Current["Bill"];
     int internalReferenceNumber = 2645;
     BankAccount bankAccount = new BankAccount(new ClientAccountCodeCCC("12345678061234567890"));
     DateTime directDebitMandateCreationDate = new DateTime(2013, 11, 11);
     string debtorname = membersManagementContextData.clubMember.FullName;
     DirectDebitMandate directDebitMandate = new DirectDebitMandate(internalReferenceNumber, directDebitMandateCreationDate, bankAccount, debtorname);
     string directDebitTransactionPaymentIdentification = "201311110000123456";
     DirectDebitPaymentMethod directDebitPaymentMethod = new DirectDebitPaymentMethod(directDebitMandate, directDebitTransactionPaymentIdentification);
     DateTime paymentDate = new DateTime(2013, 11, 11);
     Payment payment = new Payment(bill.Amount, paymentDate, directDebitPaymentMethod);
     billsManager.PayBill(invoice, bill, payment);
 }
 public void WhenIAssignToBePaidWithADirectDebit()
 {
     int internalReferenceNumber = 2645;
     BankAccount bankAccount = new BankAccount(new ClientAccountCodeCCC("12345678061234567890"));
     DateTime directDebitMandateCreationDate = new DateTime(2013, 11, 11);
     string debtorname = membersManagementContextData.clubMember.FullName;
     DirectDebitMandate directDebitMandate = new DirectDebitMandate(internalReferenceNumber, directDebitMandateCreationDate, bankAccount, debtorname);
     DirectDebitPaymentMethod directDebitPaymentMethod = new DirectDebitPaymentMethod(directDebitMandate, null);
     ScenarioContext.Current.Add("DirectDebitpaymentMethod", directDebitPaymentMethod);
     Invoice invoice = (Invoice)ScenarioContext.Current["Invoice"];
     string billID= (string)ScenarioContext.Current["BillID"];
     Bill bill = invoice.Bills[billID];
     bill.AssignPaymentMethod(directDebitPaymentMethod);
 }
 public void WhenISetDirectDebitAsNewPaymentMethod()
 {
     ClubMember clubMember = (ClubMember)ScenarioContext.Current["Member1"];
     DirectDebitMandate directDebitMandate = directDebitContextData.directDebitMandates[2345];
     DirectDebitPaymentMethod directDebitPaymentMethod = new DirectDebitPaymentMethod(directDebitMandate, null);
     ScenarioContext.Current.Add("DirectDebitPaymentMethod", directDebitPaymentMethod);
     clubMember.SetDefaultPaymentMethod(directDebitPaymentMethod);
 }
 public void ADirectDebitPaymentMethodIsCorrectlyCreated()
 {
     int internalReferenceNumber = 2645;
     BankAccount bankAccount = new BankAccount(new ClientAccountCodeCCC("12345678061234567890"));
     DateTime directDebitMandateCreationDate = new DateTime(2013, 11, 11);
     DirectDebitMandate directDebitMandate = new DirectDebitMandate(internalReferenceNumber, directDebitMandateCreationDate, bankAccount, "NoName");
     string directDebitTransactionPaymentIdentification = "201311110000123456";
     DirectDebitPaymentMethod directDebitPaymentMethod = new DirectDebitPaymentMethod(directDebitMandate, directDebitTransactionPaymentIdentification);
     Assert.AreEqual(directDebitMandate, directDebitPaymentMethod.DirectDebitMandate);
     Assert.AreEqual("201311110000123456", directDebitPaymentMethod.DDTXPaymentIdentification);
 }
 public void WhenABillIsPaidByDirectDebitTheDebtorAccountAndTheDirectDebitTransactionPaymentIdentificartionAreStored()
 {
     Bill bill = new Bill("MMM201300015/001", "An easy to pay bill", 1, DateTime.Now, DateTime.Now.AddYears(10));
     int internalReferenceNumber = 2645;
     BankAccount bankAccount = new BankAccount(new ClientAccountCodeCCC("12345678061234567890"));
     DateTime directDebitMandateCreationDate = new DateTime(2013, 11, 11);
     DirectDebitMandate directDebitMandate = new DirectDebitMandate(internalReferenceNumber, directDebitMandateCreationDate, bankAccount, "NoName");
     string directDebitTransactionPaymentIdentification = "201311110000123456";
     DirectDebitPaymentMethod directDebitTransfermethod = new DirectDebitPaymentMethod(directDebitMandate, directDebitTransactionPaymentIdentification);
     DateTime paymentDate = new DateTime(2013, 11, 11);
     Payment payment = new Payment(bill.Amount, paymentDate, directDebitTransfermethod);
     bill.PayBill(payment);
     Assert.AreEqual("12345678061234567890", ((DirectDebitPaymentMethod)bill.Payment.PaymentMethod).DirectDebitMandate.BankAccount.CCC.CCC);
     Assert.AreEqual("201311110000123456", ((DirectDebitPaymentMethod)bill.Payment.PaymentMethod).DDTXPaymentIdentification);
 }