public void AddQueueItemIsSuccessful() { var queueDaoMock = new Mock<IQueueDao>(); var payment = new Model.Booking.Payment { OrderId = 5, CreatedByUserId = new Guid("00000000-0000-0000-0000-000000000000") }; var invoiceRequest = new SettlementInvoiceRequest { BusinessId = 10, OrderId = payment.OrderId, BookingId = 2, OrderSourceCode = SourceType.Online.GetCode() }; queueDaoMock.Setup(q => q.AddQueueItem(It.Is<QueueItem>(qi => qi.PayloadType == PayloadTypeEnum.BookingInv && qi.QueueCode == QueueCodeType.SettlementInvoiceRequest && qi.UserId == payment.CreatedByUserId && qi.Key == payment.OrderId.ToString() && qi.Payload.IndexOf("10") > 0))).Returns(new QueueItem()); QueueManager manager = new QueueManager { QueueDao = queueDaoMock.Object }; QueueItem item = new PaymentManager().GetSettlementQueueItemFromPayment(payment, invoiceRequest); manager.AddQueueItem(item); queueDaoMock.VerifyAll(); }
public void GetPaymentsByOrderWithValidOrderIdReturnsPayments() { // Arrange var paymentManager = new PaymentManager(); const int ORDER_ID = 1; const long BUSINESS_ID = 1; CacheHelper.StubBusinessCacheSingleBusiness(BUSINESS_ID, "TestBus"); var payments = new List<Model.Booking.Payment> { new Model.Booking.Payment { Id = 1 }, new Model.Booking.Payment { Id = 2 } }; var paymentDao = new Mock<IPaymentDao>(); paymentManager.PaymentDao = paymentDao.Object; paymentDao.Setup(b => b.GetPaymentsByOrder(ORDER_ID)).Returns(payments); // Act var paymentsReturnedByManager = paymentManager.GetPaymentsByOrder(ORDER_ID, BUSINESS_ID); // Assert Assert.IsNotNull(paymentsReturnedByManager, "Payments are null."); Assert.AreEqual(payments, paymentsReturnedByManager, "Order payments return are not correct."); paymentDao.VerifyAll(); CacheHelper.ReAssignBusinessDaoToBusinessCache(); }
public void GetPaymentByKeyWithValidPaymentIdReturnsPayment() { // Arrange var paymentManager = new PaymentManager(); const int PAYMENT_ID = 1; var payment = new Model.Booking.Payment { Id = 1 }; var paymentDao = new Mock<IPaymentDao>(); paymentManager.PaymentDao = paymentDao.Object; paymentDao.Setup(b => b.GetByKey(PAYMENT_ID)).Returns(payment); // Act var paymentReturnedByManager = paymentManager.GetPaymentByKey(PAYMENT_ID); // Assert Assert.IsNotNull(paymentReturnedByManager, "Payment is null."); paymentDao.VerifyAll(); }
public void PreauthoriseAmountWithNoCurrencyCodeThrowsException() { // Arrange const string ORDER_REFERENCE = "TST-123-456"; const string CURRENCY_CODE = ""; var amount = new decimal(10); var paymentManager = new PaymentManager(); // Act try { paymentManager.PreauthoriseAmount(ORDER_REFERENCE, amount, CURRENCY_CODE); // Assert Assert.Fail("An exception SRVEX30124 of type ValidationException should have been thrown"); } catch (ValidationException ex) { // Assert Assert.AreEqual("SRVEX30124", ex.Code, "The Validation exception is not returning the right error code"); } }
public void PreauthoriseAmountIsSuccessful() { // Arrange const string ORDER_REFERENCE = "TST-123-456"; const string CURRENCY_CODE = "GBP"; var amount = new decimal(10); var eviivoPaymentServiceClient = new Mock<IPaymentServiceServiceClient>(); var paymentManager = new PaymentManager { EviivoPaymentServiceClient = eviivoPaymentServiceClient.Object }; eviivoPaymentServiceClient.Setup(b => b.PlacePreAuth(ORDER_REFERENCE, amount, CURRENCY_CODE)).Returns(true); // Act var result = paymentManager.PreauthoriseAmount(ORDER_REFERENCE, amount, CURRENCY_CODE); // Assert Assert.IsTrue(result, "Preauth was not successul"); }
public void GetPaymentMethods() { const string CULTURE_CODE = "en"; var initialCardTypes = new[] {CardTypeEnum.AMEX, CardTypeEnum.Maestro, CardTypeEnum.Visa, CardTypeEnum.VisaElectron}; var cardTypeDao = new Mock<ICardTypeDao>(); var paymentManager = new PaymentManager { CardTypeDao = cardTypeDao.Object }; // Create a list of closeout reasons var cardTypeData = from cardType in initialCardTypes select new CardType {Code = cardType.GetCode()}; cardTypeDao.Setup(x => x.GetAll(CULTURE_CODE)).Returns(cardTypeData.ToList()); var cardTypes = paymentManager.GetCardTypes(CULTURE_CODE); Assert.AreEqual(4, cardTypes.Count, "Check that correct number of card types methods are returned."); cardTypeDao.VerifyAll(); }
public void GetPaymentMethods() { const string CULTURE_CODE = "en"; var paymentMethodDao = new Mock<IPaymentMethodDao>(); var paymentManager = new PaymentManager { PaymentMethodDao = paymentMethodDao.Object }; // Create a list of closeout reasons var paymentMethodData = new List<PaymentMethod> { new PaymentMethod { Code = PaymentMethodEnum.AccountTransfer.GetCode() }, new PaymentMethod { Code = PaymentMethodEnum.BankTransfer.GetCode() }, new PaymentMethod { Code = PaymentMethodEnum.Cash.GetCode() }, new PaymentMethod { Code = PaymentMethodEnum.Cheque.GetCode() } }; paymentMethodDao.Setup(x => x.GetAll(CULTURE_CODE)).Returns(paymentMethodData); var paymentMethods = paymentManager.GetPaymentMethods(CULTURE_CODE); Assert.AreEqual(4, paymentMethods.Count, "Check that correct number of payment methods are returned."); paymentMethodDao.VerifyAll(); }
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 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(); }
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(); }
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); }