# coding: utf-8

"""
    MONEI API v1

    The MONEI API is organized around [REST](https://en.wikipedia.org/wiki/Representational_State_Transfer). Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.  # noqa: E501

    The version of the OpenAPI document: 1.0.0
    Generated by: https://openapi-generator.tech
"""


from __future__ import absolute_import

import unittest
import datetime

import MONEI PYTHON SDK
from MONEI PYTHON SDK.models.create_payment_request import CreatePaymentRequest  # noqa: E501
from MONEI PYTHON SDK.rest import ApiException

class TestCreatePaymentRequest(unittest.TestCase):
    """CreatePaymentRequest unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional):
        """Test CreatePaymentRequest
            include_option is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # model = MONEI PYTHON SDK.models.create_payment_request.CreatePaymentRequest()  # noqa: E501
        if include_optional :
            return CreatePaymentRequest(
                amount = 110, 
                currency = 'EUR', 
                order_id = '14379133960355', 
                callback_url = 'https://example.com/checkout/callback', 
                complete_url = 'https://example.com/checkout/complete', 
                fail_url = 'https://example.com/checkout/fail', 
                cancel_url = 'https://example.com/checkout/cancel', 
                payment_token = null, 
                session_id = '39603551437913', 
                generate_payment_token = False, 
                payment_method = MONEI PYTHON SDK.models.payment_payment_method_input.Payment-PaymentMethodInput(
                    card = MONEI PYTHON SDK.models.card.Card(
                        number = '0', 
                        cvc = '0', 
                        exp_month = '0', 
                        exp_year = '0', ), ), 
                allowed_payment_methods = ["card","bizum","paypal"], 
                transaction_type = 'SALE', 
                sequence = MONEI PYTHON SDK.models.payment_sequence.Payment-Sequence(
                    type = 'recurring', 
                    recurring = MONEI PYTHON SDK.models.payment_sequence_recurring.Payment-SequenceRecurring(
                        expiry = '*(The payment method or card expiration)*', 
                        frequency = 30, ), ), 
                description = 'Test Shop - #84370745531439', 
                customer = MONEI PYTHON SDK.models.payment_customer.Payment-Customer(
                    email = 'john.doe@microapps.com', 
                    name = 'John Doe', 
                    phone = '0', ), 
                billing_details = MONEI PYTHON SDK.models.payment_billing_details.Payment-BillingDetails(
                    name = 'John Doe', 
                    email = 'john.doe@microapps.com', 
                    phone = '0', 
                    company = '0', 
                    address = MONEI PYTHON SDK.models.address.Address(
                        country = 'ES', 
                        city = 'Málaga', 
                        line1 = 'Fake Street 123', 
                        line2 = '0', 
                        zip = '1234', 
                        state = 'Málaga', ), ), 
                shipping_details = MONEI PYTHON SDK.models.payment_shipping_details.Payment-ShippingDetails(
                    name = 'John Doe', 
                    email = 'john.doe@microapps.com', 
                    phone = '0', 
                    company = '0', 
                    address = MONEI PYTHON SDK.models.address.Address(
                        country = 'ES', 
                        city = 'Málaga', 
                        line1 = 'Fake Street 123', 
                        line2 = '0', 
                        zip = '1234', 
                        state = 'Málaga', ), ), 
                session_details = MONEI PYTHON SDK.models.payment_session_details.Payment-SessionDetails(
                    ip = '100.100.200.100', 
                    country_code = 'ES', 
                    lang = 'es', 
                    device_type = 'desktop', 
                    device_model = '0', 
                    browser = 'Chrome', 
                    browser_version = '83.0.4103.116', 
                    os = 'Mac OS', 
                    os_version = '10.15.4', 
                    source = 'MONEI/PHP', 
                    source_version = '0.1.2', 
                    user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...', )
            )
        else :
            return CreatePaymentRequest(
                amount = 110,
                currency = 'EUR',
                order_id = '14379133960355',
                callback_url = 'https://example.com/checkout/callback',
                complete_url = 'https://example.com/checkout/complete',
        )

    def testCreatePaymentRequest(self):
        """Test CreatePaymentRequest"""
        inst_req_only = self.make_instance(include_optional=False)
        inst_req_and_optional = self.make_instance(include_optional=True)


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