public void GetRelevantPercentageByItemTypeReturnsDefault() { // arrange const int ITEM_ID = 1; const ItemTypeEnum ITEM_TYPE = ItemTypeEnum.ProcessingFee; const decimal EXAMPLE_PERCENTAGE = 15.0m; List<BookingItem> bookingItems = new List<BookingItem>() { new BookingItem() { Id = ITEM_ID, ItemType = ITEM_TYPE }, new BookingItem { Id = ITEM_ID + 1, ItemType = ItemTypeEnum.Breakfast } }; List<BookingConstituent> bookingConstituents = new List<BookingConstituent> { new BookingConstituent { RelevantPercentage = EXAMPLE_PERCENTAGE, ItemId = ITEM_ID }, new BookingConstituent { RelevantPercentage = 12.0m, ItemId = ITEM_ID + 1 } }; var targetSettlementManager = new SettlementManager(); // act decimal result = targetSettlementManager.GetRelevantPercentageByItemType(bookingItems, bookingConstituents, ItemTypeEnum.Dinner); //assert Assert.AreEqual(default(decimal), result, "Returned percentage was not as expected"); }
public void GetAgentPaymentAmountReturnsCorrectAmountsForScenariosGiven(BookingScenarioTypeEnum scenarioType, decimal totalBookingValue, decimal distributorPercentage, decimal expectedPercent) { // Arrange // done through test cases // Act SettlementManager settlementManager = new SettlementManager(); decimal result = settlementManager.GetAgentPaymentAmount(scenarioType, totalBookingValue, distributorPercentage); // Assert Assert.AreEqual(expectedPercent, result, string.Format("percentage did not match test case. scenario:{0}, ttv:{1}, percentage:{2}, expected:{3}", scenarioType.GetCode(), totalBookingValue, distributorPercentage, expectedPercent)); }
public void IsInvoiceRequestValidForNullSourceCodeExpectExceptionThrown() { // arrange var settlementManager = new SettlementManager(); // act settlementManager.IsInvoiceRequestValid(1, 1, null); }
public void IsInvoiceRequestValidForNonOnlineBookingsExpectFalseReturned() { // arrange var settlementManager = new SettlementManager(); var sourceCodeType = SourceType.Pms.GetCode(); // act var result = settlementManager.IsInvoiceRequestValid(1, 1, sourceCodeType); // assert Assert.IsFalse(result); }
public void SetPaymentInfoOnTransactionModelWithPaymentIsSuccessful() { // ARRANGE const string SETTLEMENT_ACTION_CODE_PAYMENT = "PAYMENT"; TransactionModel mockModel = new TransactionModel(); var bookingPaymentMock = new Model.Booking.Payment(); Model.Order.Order orderMock = new Order() { IntegrationType = IntegrationTypeEnum.WhiteLabel }; List<SettlementPaymentDto> settlementPaymentsMock = new List<SettlementPaymentDto>() { new SettlementPaymentDto { ActionCode = SETTLEMENT_ACTION_CODE_PAYMENT } }; bool forceProcess = false; const string last4Digits = "0123"; bookingPaymentMock.CardLast4Digits = last4Digits; SettlementManager settlementManager = new SettlementManager(); // Act settlementManager.SetPaymentInfoOnTransactionModel(mockModel, bookingPaymentMock, settlementPaymentsMock, orderMock, forceProcess); // Assert Assert.AreEqual(last4Digits, mockModel.MaskedCardNumber, "Should have been set if settlement payment is present"); }
public void IsInvoiceRequestValidForNullOrderIdExpectExceptionThrown() { // arrange var settlementManager = new SettlementManager(); // act settlementManager.IsInvoiceRequestValid(1, default(int), "source code"); }
public void SetPaymentInfoOnTransactionModelWithNoPaymentAndForceProccessIsSuccessful() { // ARRANGE TransactionModel mockModel = new TransactionModel(); var bookingPaymentMock = new Model.Booking.Payment(); List<SettlementPaymentDto> settlementPaymentsMock = new List<SettlementPaymentDto>(); Model.Order.Order orderMock = new Order(); bool forceProcess = true; bookingPaymentMock.CardLast4Digits = "0123"; SettlementManager settlementManager = new SettlementManager(); // Act settlementManager.SetPaymentInfoOnTransactionModel(mockModel, bookingPaymentMock, settlementPaymentsMock, orderMock, forceProcess); // Assert Assert.IsNull(mockModel.MaskedCardNumber, "Should not have been set if settlement payment not present"); }
public void SetPaymentInfoOnTransactionModelWithNoPaymentNotMyWebDoesNotThrowException() { // ARRANGE TransactionModel mockModel = new TransactionModel(); var bookingPaymentMock = new Model.Booking.Payment(); List<SettlementPaymentDto> settlementPaymentsMock = new List<SettlementPaymentDto>(); Model.Order.Order orderMock = new Order() { IntegrationType = IntegrationTypeEnum.RequestResponse }; bookingPaymentMock.CardLast4Digits = "0123"; bool forceProcess = false; SettlementManager settlementManager = new SettlementManager(); // Act settlementManager.SetPaymentInfoOnTransactionModel(mockModel, bookingPaymentMock, settlementPaymentsMock, orderMock, forceProcess); // Assert Assert.IsNull(mockModel.MaskedCardNumber, "Should not have been set if settlement payment not present and not myweb or toprooms"); }
public void SetPaymentInfoOnTransactionModelWithNoPaymentThrowsException() { // ARRANGE TransactionModel mockModel = new TransactionModel(); var bookingPaymentMock = new Model.Booking.Payment(); List<SettlementPaymentDto> settlementPaymentsMock = new List<SettlementPaymentDto>(); Model.Order.Order orderMock = new Order() { IntegrationType = IntegrationTypeEnum.Myweb }; bool forceProcess = false; SettlementManager settlementManager = new SettlementManager(); // Act settlementManager.SetPaymentInfoOnTransactionModel(mockModel, bookingPaymentMock, settlementPaymentsMock, orderMock, forceProcess); // Assert // done in expected exception }
public void GetOfflineTransactionCountsFailsWhenEndDateDefaultValue() { //arrange var startDate = new DateTime(2014, 1, 1, 0, 0, 0, DateTimeKind.Utc); var endDate = default(DateTime); var settlementManager = new SettlementManager(); //act settlementManager.GetOfflineTransactionCounts(startDate, endDate, OfflineSourceEnum.Web); //assert Assert.Fail("Test should fail if end date is default value"); }
public void GetOfflineTransactionCountsReturnsCountCorrectly() { //arrange var startDate = new DateTime(2014, 1, 1, 0, 0, 0, DateTimeKind.Utc); var endDate = new DateTime(2014, 2, 1, 0, 0, 0, DateTimeKind.Utc); var bookingDaoMock = MockRepository.GenerateMock<IBookingDao>(); var bookingCounts = new List<PropertyOfflineBookingsCount> { new PropertyOfflineBookingsCount { CurrencyCode = "GBP", OfflineBookingCount = 3, PeriodDateTime = startDate, PropertyShortname = "TestBus1", TaxRegistered = false }, new PropertyOfflineBookingsCount { CurrencyCode = "GBP", OfflineBookingCount = 5, PeriodDateTime = startDate, PropertyShortname = "TestBus2", TaxRegistered = false } }; bookingDaoMock.Expect(bd => bd.GetPropertyOfflineBookingsCounts(Arg<DateTime>.Is.Anything, Arg<DateTime>.Is.Anything, Arg<OfflineSourceEnum>.Is.Anything)) .Return(bookingCounts) .Repeat.Once(); var settlementManager = new SettlementManager {BookingDao = bookingDaoMock}; //act var result = settlementManager.GetOfflineTransactionCounts(startDate, endDate, OfflineSourceEnum.Web); //assert Assert.IsNotNull(result, "Result was null"); Assert.AreEqual(2, result.Count, "Result collection doesn't contain the right number of elements"); Assert.AreSame(bookingCounts, result, "Result value was not as expected"); bookingDaoMock.VerifyAllExpectations(); }