public void Card_and_account_apr_should_return_no_payment_methods_when_deadline_is_reached()
        {
            var availability = CreateAvailability(
                isApr: true,
                deadlineDate: new DateTime(2020, 11, 22),
                checkInDate: new DateTime(2020, 11, 25));
            var settingsWithHiddenApr = CreateSettings(aprMode: AprMode.CardAndAccountPurchases);

            var availablePaymentTypes = BookingPaymentTypesHelper.GetAvailablePaymentTypes(availability, settingsWithHiddenApr,
                                                                                           ContractKind.CreditPayments, new DateTime(2020, 11, 23));

            Assert.Equal(new List <PaymentTypes>(), availablePaymentTypes);
        }
        public void Display_only_apr_should_return_no_payment_methods()
        {
            var availability = CreateAvailability(
                isApr: true,
                deadlineDate: new DateTime(2020, 11, 22),
                checkInDate: new DateTime(2020, 11, 25));
            var settingsWithHiddenApr = CreateSettings(aprMode: AprMode.DisplayOnly);

            var availablePaymentTypes = BookingPaymentTypesHelper.GetAvailablePaymentTypes(availability, settingsWithHiddenApr,
                                                                                           ContractKind.CreditPayments, new DateTime(2020, 11, 11));

            Assert.Equal(new List <PaymentTypes>(), availablePaymentTypes);
        }
        public void Not_apr_should_return_no_payment_methods_when_deadline_is_not_reached_and_hidden()
        {
            var availability = CreateAvailability(
                isApr: false,
                deadlineDate: new DateTime(2020, 11, 22),
                checkInDate: new DateTime(2020, 11, 25));
            var settingsWithHiddenApr = CreateSettings(aprMode: AprMode.Hide, deadlineOffersMode: PassedDeadlineOffersMode.Hide);

            var availablePaymentTypes = BookingPaymentTypesHelper.GetAvailablePaymentTypes(availability, settingsWithHiddenApr,
                                                                                           ContractKind.CreditPayments, new DateTime(2020, 11, 22));

            Assert.Equal(new List <PaymentTypes>(), availablePaymentTypes);
        }
        public void Contract_kind_credit_payments_should_match()
        {
            var availability = CreateAvailability(
                isApr: false,
                deadlineDate: new DateTime(2020, 11, 22),
                checkInDate: new DateTime(2020, 11, 25));
            var settingsWithHiddenApr = CreateSettings(aprMode: AprMode.CardAndAccountPurchases, deadlineOffersMode: PassedDeadlineOffersMode.CardAndAccountPurchases);

            var paymentTypes = BookingPaymentTypesHelper.GetAvailablePaymentTypes(availability, settingsWithHiddenApr,
                                                                                  ContractKind.CreditPayments, new DateTime(2020, 11, 20));

            Assert.Equal(new List <PaymentTypes> {
                PaymentTypes.VirtualAccount, PaymentTypes.CreditCard
            }, paymentTypes);
        }
        public void Not_apr_should_return_credit_card_when_deadline_is_reached_and_allowed_credit_card()
        {
            var availability = CreateAvailability(
                isApr: false,
                deadlineDate: new DateTime(2020, 11, 22),
                checkInDate: new DateTime(2020, 11, 25));
            var settingsWithHiddenApr = CreateSettings(aprMode: AprMode.Hide, deadlineOffersMode: PassedDeadlineOffersMode.CardPurchasesOnly);

            var availablePaymentTypes = BookingPaymentTypesHelper.GetAvailablePaymentTypes(availability, settingsWithHiddenApr,
                                                                                           ContractKind.CreditPayments, new DateTime(2020, 11, 22));

            Assert.Equal(new List <PaymentTypes> {
                PaymentTypes.CreditCard
            }, availablePaymentTypes);
        }