# coding: utf-8

"""
    PAY.JP API v2

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)

    The version of the OpenAPI document: 2.0.0
    Contact: support@pay.jp
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


import unittest

from payjpv2.models.checkout_session_create_request import CheckoutSessionCreateRequest

class TestCheckoutSessionCreateRequest(unittest.TestCase):
    """CheckoutSessionCreateRequest unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> CheckoutSessionCreateRequest:
        """Test CheckoutSessionCreateRequest
            include_optional is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # uncomment below to create an instance of `CheckoutSessionCreateRequest`
        """
        model = CheckoutSessionCreateRequest()
        if include_optional:
            return CheckoutSessionCreateRequest(
                mode = 'payment',
                client_reference_id = '',
                customer_id = '',
                customer_email = '',
                customer_creation = 'always',
                line_items = [
                    payjpv2.models.line_item_request.LineItemRequest(
                        price_id = '', 
                        quantity = 56, 
                        tax_rates = [
                            ''
                            ], )
                    ],
                metadata = {
                    'key' : null
                    },
                success_url = '',
                cancel_url = '',
                currency = 'jpy',
                expires_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                locale = 'auto',
                payment_method_types = [
                    'card'
                    ],
                payment_method_options = payjpv2.models.checkout_session_payment_method_options_request.CheckoutSessionPaymentMethodOptionsRequest(
                    card = payjpv2.models.checkout_session_payment_method_options_card_request.CheckoutSessionPaymentMethodOptionsCardRequest(
                        request_extended_authorization = 'if_available', 
                        request_three_d_secure = 'any', ), ),
                payment_flow_data = payjpv2.models.payment_flow_data_request.PaymentFlowDataRequest(
                    capture_method = 'automatic', 
                    metadata = {
                        'key' : null
                        }, ),
                submit_type = 'auto',
                setup_flow_data = payjpv2.models.setup_flow_data_request.SetupFlowDataRequest(
                    metadata = {
                        'key' : null
                        }, ),
                ui_mode = 'hosted'
            )
        else:
            return CheckoutSessionCreateRequest(
                mode = 'payment',
        )
        """

    def testCheckoutSessionCreateRequest(self):
        """Test CheckoutSessionCreateRequest"""
        # inst_req_only = self.make_instance(include_optional=False)
        # inst_req_and_optional = self.make_instance(include_optional=True)

if __name__ == '__main__':
    unittest.main()
