Пример #1
0
            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");
            }
Пример #2
0
            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));
            }  
Пример #3
0
 public void IsInvoiceRequestValidForNullSourceCodeExpectExceptionThrown()
 {
     // arrange
     var settlementManager = new SettlementManager();
     // act
     settlementManager.IsInvoiceRequestValid(1, 1, null);
 }
Пример #4
0
            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);
            }
Пример #5
0
            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");
            }
Пример #6
0
 public void IsInvoiceRequestValidForNullOrderIdExpectExceptionThrown()
 {
     // arrange
     var settlementManager = new SettlementManager();
     // act
     settlementManager.IsInvoiceRequestValid(1, default(int), "source code");
 }
Пример #7
0
            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");
            }
Пример #8
0
            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");                
            }
Пример #9
0
            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
            }
Пример #10
0
            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");
            }
Пример #11
0
            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();
            }