public void CreatePaymentInvalidReceivedDateThrowsValidationException() { // Arrange var stubPaymentDao = MockRepository.GenerateStub<IPaymentDao>(); var paymentManager = new PaymentManager { PaymentDao = stubPaymentDao }; var payment = new Model.Booking.Payment { Amount = new decimal(10.00), ReceivedDate = DateTime.Today.AddDays(10), Currency = new Currency("GBP"), PaymentMethod = new PaymentMethod { Code = PaymentMethodEnum.Cash.GetCode() }, PaymentSource = new PaymentSource { Code = PaymentSourceEnum.Pms.GetCode() }, PaymentStatus = new PaymentStatus { Code = PaymentStatusEnum.Created.GetCode() }, PaymentType = new PaymentType { Code = PaymentTypeEnum.Payment.GetCode() }, Notes = "New Payment" }; stubPaymentDao.Stub(b => b.Create(payment)).WhenCalled(delegate { payment.Id = 1; }); try { // Act paymentManager.CreatePaymentForOrder(payment, 1); // Assert Assert.Fail("An exception SRVEX30071 of type ValidationException should have been thrown"); } catch (ValidationException ex) { // Assert Assert.AreEqual("SRVEX30071", ex.Code, "The Validation exception is not returning the right error code"); } // Make sure this is reset for future tests paymentManager.PaymentDao = new PaymentDao(); }
public void CreateRefundIsSuccessful() { // Arrange const int PAYMENT_ID = 1; var stubPaymentDao = MockRepository.GenerateStub<IPaymentDao>(); var paymentManager = new PaymentManager { PaymentDao = stubPaymentDao }; var payment = new Model.Booking.Payment { Id = PAYMENT_ID, Amount = new decimal(10.00), ReceivedDate = DateTime.Today, Currency = new Currency("GBP"), PaymentMethod = new PaymentMethod { Code = PaymentMethodEnum.Cash.GetCode() }, PaymentSource = new PaymentSource { Code = PaymentSourceEnum.Pms.GetCode() }, PaymentStatusEnum = PaymentStatusEnum.Deleted, PaymentTypeEnum = PaymentTypeEnum.Refund, Notes = "New Payment" }; stubPaymentDao.Stub(b => b.Create(payment)).WhenCalled(delegate { payment.Id = 1; }); // Act paymentManager.CreatePaymentForOrder(payment, 1); // Assert Assert.IsNotNull(payment.Id, "The payment reversal id was not attributed."); // Make sure this is reset for future tests paymentManager.PaymentDao = new PaymentDao(); }
public void CreatePaymentCreatesEvents() { // Arrange var mockEventTrackingManager = MockRepository.GenerateMock<IEventTrackingManager>(); CacheHelper.StubBusinessCacheSingleBusiness(1, "TestBus1"); var paymentManager = new PaymentManager { PaymentDao = MockRepository.GenerateStub<IPaymentDao>(), EventTrackingManager = mockEventTrackingManager }; var payment = new Model.Booking.Payment { Id = 1, OrderId = 1, Amount = new decimal(10.00), ReceivedDate = DateTime.Today, Currency = new Currency("GBP"), PaymentMethod = new PaymentMethod { Code = PaymentMethodEnum.Cash.GetCode() }, PaymentSource = new PaymentSource { Code = PaymentSourceEnum.Pms.GetCode() }, PaymentStatusEnum = PaymentStatusEnum.Created, PaymentTypeEnum = PaymentTypeEnum.Payment, Notes = "New Payment" }; mockEventTrackingManager.Expect( u => u.CreatePaymentEvent(Arg<int>.Is.Equal(payment.Id), Arg<PaymentEventTypeEnum>.Is.Equal(PaymentEventTypeEnum.Created), Arg<string>.Is.Equal(payment.Notes))) .Repeat.Once(); ; mockEventTrackingManager.Expect( ev => ev.CreateOrderEvent(Arg<int>.Is.Equal(payment.OrderId), Arg<OrderEventTypeEnum>.Is.Equal(OrderEventTypeEnum.PaymentAdded), Arg<string>.Is.Equal(payment.Id.ToString()), Arg<string>.Is.Equal(payment.Notes))) .Repeat.Once(); paymentManager.CreatePaymentForOrder(payment, 1); CacheHelper.ReAssignBusinessDaoToBusinessCache(); // Assert mockEventTrackingManager.VerifyAllExpectations(); }
protected override void RunBeforeAllTests() { base.RunBeforeAllTests(); GuestManager guestManager = new GuestManager(); PaymentManager paymentManager = new PaymentManager(); Guest guest = new Guest { BusinessId = BUSINESS_ID, DefaultCultureCode = "en-GB", AddressLine1 = "AL1", City = "City", Forename = "Bob", Surname = "Smith" }; guestManager.Create(guest); var mockOrder = new Order { IntegrationType = IntegrationTypeEnum.Myweb, OfflineSourceEnum = OfflineSourceEnum.Web, CustomerCurrencyCode = "GBP", OrderSourceCode = SourceType.Online.GetCode(), LeadGuest = guest, LeadGuestId = guest.Id.Value }; orderDao.CreateOrder(BUSINESS_ID, mockOrder); // set up payment for the order setupPayment = new Model.Booking.Payment { OrderId = mockOrder.Id.Value, PaymentSourceEnum = PaymentSourceEnum.Online, PaymentTypeEnum = PaymentTypeEnum.Payment, PaymentMethodEnum = PaymentMethodEnum.AccountTransfer, Currency = new Currency(mockOrder.CustomerCurrencyCode), Amount = 30, Notes = "Test Notes", PaymentStatusEnum = PaymentStatusEnum.Created, ReceivedDate = DateTime.Now.AddDays(-5), MerchantType = MerchantTypeEnum.EviivoAccount }; paymentManager.CreatePaymentForOrder(setupPayment, BUSINESS_ID); }