public JsonResult SavePayment(PaymentCreationParameters payment) { var user = AppService.Current.User.CurrentUser; var patientLoginInfo = new PatientLoginInfo { ID = user.ID, LastName = user.LastName, FirstName = user.FirstName, Email = user.Email }; var result = _paymentManager.SavePayment(patientLoginInfo, payment, null); return(this.CamelCaseJson(result)); }
public void One_time_payment_throws_exception_when_payment_date_is_in_the_past() { var services = CreateServices(); var patientLoginInfo = CreatePatientLoginInfo(); var paymentParameters = new PaymentCreationParameters { PaymentType = PaymentType.onetime, PatientId = 1, Amount = 100, OneTimePaymentDate = DateTime.Today.AddDays(-3), CardNumber = "4242424242424242", CardExpiryMonth = "05", CardExpiryYear = "2018", CardSecurityCode = "123" }; var result = services.PaymentManager.SavePayment(patientLoginInfo, paymentParameters, null); }
public void Savepayment_throws_exception_when_amount_is_lower_or_equal_zero() { var services = CreateServices(); var patientLoginInfo = CreatePatientLoginInfo(); var paymentParameters = new PaymentCreationParameters { PaymentType = PaymentType.onetime, PatientId = 1, Amount = 0, OneTimePaymentDate = DateTime.Today, CardNumber = "4242424242424242", CardExpiryMonth = "05", CardExpiryYear = "2018", CardSecurityCode = "123" }; var result = services.PaymentManager.SavePayment(patientLoginInfo, paymentParameters, null); }
public void Recurring_payment_throws_exception_when_recurring_start_date_is_null() { var services = CreateServices(); var patientLoginInfo = CreatePatientLoginInfo(); var paymentParameters = new PaymentCreationParameters { PaymentType = PaymentType.recurring, PatientId = 1, Amount = 100, RecurringDateStart = null, CardNumber = "4242424242424242", CardExpiryMonth = "05", CardExpiryYear = "2018", CardSecurityCode = "123" }; var result = services.PaymentManager.SavePayment(patientLoginInfo, paymentParameters, null); }
public void Recurring_payment_throws_exception_when_recurring_start_date_is_outside_time_window() { var services = CreateServices(); var patientLoginInfo = CreatePatientLoginInfo(); var startDate = DateTime.Today.AddMonths(services.PaymentManager.Configuration.RecurringTransactionTimeWindow + 1); var paymentParameters = new PaymentCreationParameters { PaymentType = PaymentType.recurring, PatientId = 1, Amount = 100, RecurringDateStart = startDate, RecurringDateEnd = startDate.AddDays(10), CardNumber = "4242424242424242", CardExpiryMonth = "05", CardExpiryYear = "2018", CardSecurityCode = "123" }; var result = services.PaymentManager.SavePayment(patientLoginInfo, paymentParameters, null); }
public void One_time_payment_is_scheduled() { var services = CreateServices(); var patientLoginInfo = CreatePatientLoginInfo(); var paymentParameters = new PaymentCreationParameters { PaymentType = PaymentType.onetime, PatientId = 1, Amount = 100, OneTimePaymentDate = DateTime.Today.AddDays(2), CardNumber = "4242424242424242", CardExpiryMonth = "05", CardExpiryYear = "2018", CardSecurityCode = "123" }; var result = services.PaymentManager.SavePayment(patientLoginInfo, paymentParameters, null); services.PaymentGatewayMock.Verify(m => m.Charge(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()), Times.Never()); services.PaymentScheduleRepositoryMock.Verify(m => m.Insert(It.IsAny <PaymentSchedule>()), Times.Once()); }
public void Recurring_payment_creates_scheduled_payments() { var services = CreateServices(); var patientLoginInfo = CreatePatientLoginInfo(); var paymentParameters = new PaymentCreationParameters { PaymentType = PaymentType.recurring, PatientId = 1, Amount = 100, RecurringFrequency = RecurringFrequency.weekly, RecurringDateStart = DateTime.Today, RecurringDateEnd = DateTime.Today.AddDays(30), CardNumber = "4242424242424242", CardExpiryMonth = "05", CardExpiryYear = "2018", CardSecurityCode = "123" }; var result = services.PaymentManager.SavePayment(patientLoginInfo, paymentParameters, null); services.PaymentScheduleRepositoryMock.Verify(m => m.Insert(It.IsAny <IEnumerable <PaymentSchedule> >()), Times.Once()); }