# coding: utf-8

"""
    Zarban API

    API for Zarban services.  # noqa: E501

    The version of the OpenAPI document: 2.0.0
    Contact: info@zarban.io
    Generated by: https://openapi-generator.tech
"""


from __future__ import absolute_import

import unittest
import datetime

import zarban.service.openapi_client
from zarban.service.openapi_client.models.quote_response import QuoteResponse  # noqa: E501
from zarban.service.openapi_client.rest import ApiException

class TestQuoteResponse(unittest.TestCase):
    """QuoteResponse unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional):
        """Test QuoteResponse
            include_option is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # model = zarban.service.openapi_client.models.quote_response.QuoteResponse()  # noqa: E501
        if include_optional :
            return QuoteResponse(
                type = 'Classic', 
                trade_type = 'ExactInput', 
                time = zarban.service.openapi_client.models.timestamp.Timestamp(
                    jalaali = '1399-01-01T00:00:00Z', 
                    gregorian = '2020-01-01T00:00:00Z', ), 
                amount = {"USD":"1.23","TMN":"45.67","ZAR":"89.01","ETH":"0.02"}, 
                quote = {"USD":"1.23","TMN":"45.67","ZAR":"89.01","ETH":"0.02"}, 
                quote_id = '0', 
                gas_price = {"USD":"1.23","TMN":"45.67","ZAR":"89.01","ETH":"0.02"}, 
                gas_use_estimate = 56, 
                gas_fee_estimate = {"USD":"1.23","TMN":"45.67","ZAR":"89.01","ETH":"0.02"}, 
                route_string = 'A -- [0x0000000000000000000000000000000000000012] --> B -- [0x0000000000000000000000000000000000000023] --> C', 
                method_parameters = zarban.service.openapi_client.models.method_parameters.MethodParameters(
                    to = 'a', 
                    calldata = '0', 
                    value = '0', ), 
                route = [
                    null
                    ], 
                order_info = zarban.service.openapi_client.models.order_info.OrderInfo(
                    chain_id = 56, 
                    permit2_address = 'a', 
                    reactor = 'a', 
                    swapper = 'a', 
                    nonce = '0', 
                    deadline = zarban.service.openapi_client.models.timestamp.Timestamp(
                        jalaali = '1399-01-01T00:00:00Z', 
                        gregorian = '2020-01-01T00:00:00Z', ), 
                    additional_validation_contract = 'a', 
                    additional_validation_data = 'a', 
                    decay_start_time = zarban.service.openapi_client.models.timestamp.Timestamp(
                        jalaali = '1399-01-01T00:00:00Z', 
                        gregorian = '2020-01-01T00:00:00Z', ), 
                    decay_end_time = zarban.service.openapi_client.models.timestamp.Timestamp(
                        jalaali = '1399-01-01T00:00:00Z', 
                        gregorian = '2020-01-01T00:00:00Z', ), 
                    exclusive_filler = 'a', 
                    exclusivity_override_bps = 56, 
                    input = zarban.service.openapi_client.models.dutch_amount.DutchAmount(
                        token = zarban.service.openapi_client.models.token.Token(
                            name = 'Zar Stablecoin', 
                            symbol = 'USD', 
                            decimals = 18, 
                            address = '0x1234567890123456789012345678901234567890', 
                            logo_uri = '/assets/logos/dai.svg', 
                            chain_id = 1, 
                            persian_name = 'زر', ), 
                        start_amount = {"USD":"1.23","TMN":"45.67","ZAR":"89.01","ETH":"0.02"}, 
                        end_amount = {"USD":"1.23","TMN":"45.67","ZAR":"89.01","ETH":"0.02"}, 
                        recipient = 'a', ), 
                    outputs = [
                        zarban.service.openapi_client.models.dutch_amount.DutchAmount(
                            token = zarban.service.openapi_client.models.token.Token(
                                name = 'Zar Stablecoin', 
                                symbol = 'USD', 
                                decimals = 18, 
                                address = '0x1234567890123456789012345678901234567890', 
                                logo_uri = '/assets/logos/dai.svg', 
                                chain_id = 1, 
                                persian_name = 'زر', ), 
                            start_amount = {"USD":"1.23","TMN":"45.67","ZAR":"89.01","ETH":"0.02"}, 
                            end_amount = {"USD":"1.23","TMN":"45.67","ZAR":"89.01","ETH":"0.02"}, 
                            recipient = 'a', )
                        ], ), 
                encoded_order = 'a', 
                order_hash = 'a', 
                permit_data = zarban.service.openapi_client.models.typed_data.TypedData(
                    types = {
                        'key' : [
                            zarban.service.openapi_client.models.type.Type(
                                name = '0', 
                                type = '0', )
                            ]
                        }, 
                    primary_type = '0', 
                    domain = zarban.service.openapi_client.models.typed_data_domain.TypedDataDomain(
                        name = '0', 
                        version = '0', 
                        chain_id = '0', 
                        verifying_contract = '0', 
                        salt = '0', ), 
                    message = { }, )
            )
        else :
            return QuoteResponse(
                type = 'Classic',
                trade_type = 'ExactInput',
                time = zarban.service.openapi_client.models.timestamp.Timestamp(
                    jalaali = '1399-01-01T00:00:00Z', 
                    gregorian = '2020-01-01T00:00:00Z', ),
                amount = {"USD":"1.23","TMN":"45.67","ZAR":"89.01","ETH":"0.02"},
                quote = {"USD":"1.23","TMN":"45.67","ZAR":"89.01","ETH":"0.02"},
                quote_id = '0',
                gas_price = {"USD":"1.23","TMN":"45.67","ZAR":"89.01","ETH":"0.02"},
                gas_use_estimate = 56,
                gas_fee_estimate = {"USD":"1.23","TMN":"45.67","ZAR":"89.01","ETH":"0.02"},
                route_string = 'A -- [0x0000000000000000000000000000000000000012] --> B -- [0x0000000000000000000000000000000000000023] --> C',
                route = [
                    null
                    ],
        )

    def testQuoteResponse(self):
        """Test QuoteResponse"""
        inst_req_only = self.make_instance(include_optional=False)
        inst_req_and_optional = self.make_instance(include_optional=True)


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