# coding: utf-8

"""
    ****************************************************************************
    Copyright (c) 2016-present,
    Jaguar0625, gimre, BloodyRookie, Tech Bureau, Corp. All rights reserved.

    This file is part of Catapult.

    Catapult is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Catapult is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with Catapult. If not, see <http://www.gnu.org/licenses/>.
    ****************************************************************************
    
    Catapult REST Endpoints
    OpenAPI Specification of catapult-rest 1.1.2  # noqa: E501
    The version of the OpenAPI document: 0.9.3
    Contact: contact@nem.foundation

    NOTE: This file is auto generated by Symbol OpenAPI Generator:
    https://github.com/nemtech/symbol-openapi-generator
    Do not edit this file manually.
"""


from __future__ import absolute_import

import unittest
import datetime

import symbol_openapi_client
from symbol_openapi_client.models.plugins_properties_dto import PluginsPropertiesDTO  # noqa: E501
from symbol_openapi_client.rest import ApiException

class TestPluginsPropertiesDTO(unittest.TestCase):
    """PluginsPropertiesDTO unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional):
        """Test PluginsPropertiesDTO
            include_option is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # model = symbol_openapi_client.models.plugins_properties_dto.PluginsPropertiesDTO()  # noqa: E501
        if include_optional :
            return PluginsPropertiesDTO(
                accountlink = symbol_openapi_client.models.account_key_link_network_properties_dto.AccountKeyLinkNetworkPropertiesDTO(
                    dummy = '0', ), 
                aggregate = symbol_openapi_client.models.aggregate_network_properties_dto.AggregateNetworkPropertiesDTO(
                    max_transactions_per_aggregate = '1000', 
                    max_cosignatures_per_aggregate = '15', 
                    enable_strict_cosignature_check = False, 
                    enable_bonded_aggregate_support = True, 
                    max_bonded_transaction_lifetime = '48h', ), 
                lockhash = symbol_openapi_client.models.hash_lock_network_properties_dto.HashLockNetworkPropertiesDTO(
                    locked_funds_per_aggregate = '10000000', 
                    max_hash_lock_duration = '2d', ), 
                locksecret = symbol_openapi_client.models.secret_lock_network_properties_dto.SecretLockNetworkPropertiesDTO(
                    max_secret_lock_duration = '30d', 
                    min_proof_size = '1', 
                    max_proof_size = '1000', ), 
                metadata = symbol_openapi_client.models.metadata_network_properties_dto.MetadataNetworkPropertiesDTO(
                    max_value_size = '1024', ), 
                mosaic = symbol_openapi_client.models.mosaic_network_properties_dto.MosaicNetworkPropertiesDTO(
                    max_mosaics_per_account = '10000', 
                    max_mosaic_duration = '3650d', 
                    max_mosaic_divisibility = '6', 
                    mosaic_rental_fee_sink_address = 'SAAA244WMCB2JXGNQTQHQOS45TGBFF4V2MJBVOQ', 
                    mosaic_rental_fee = '500', ), 
                multisig = symbol_openapi_client.models.multisig_network_properties_dto.MultisigNetworkPropertiesDTO(
                    max_multisig_depth = '3', 
                    max_cosignatories_per_account = '10', 
                    max_cosigned_accounts_per_account = '5', ), 
                namespace = symbol_openapi_client.models.namespace_network_properties_dto.NamespaceNetworkPropertiesDTO(
                    max_name_size = '64', 
                    max_child_namespaces = '500', 
                    max_namespace_depth = '3', 
                    min_namespace_duration = '1m', 
                    max_namespace_duration = '365d', 
                    namespace_grace_period_duration = '2m', 
                    reserved_root_namespace_names = 'xem, nem, user, account, org, com, biz, net, edu, mil, gov, info', 
                    namespace_rental_fee_sink_address = 'SAAA244WMCB2JXGNQTQHQOS45TGBFF4V2MJBVOQ', 
                    root_namespace_rental_fee_per_block = '1', 
                    child_namespace_rental_fee = '100', ), 
                restrictionaccount = symbol_openapi_client.models.account_restriction_network_properties_dto.AccountRestrictionNetworkPropertiesDTO(
                    max_account_restriction_values = '512', ), 
                restrictionmosaic = symbol_openapi_client.models.mosaic_restriction_network_properties_dto.MosaicRestrictionNetworkPropertiesDTO(
                    max_mosaic_restriction_values = '20', ), 
                transfer = symbol_openapi_client.models.transfer_network_properties_dto.TransferNetworkPropertiesDTO(
                    max_message_size = '1024', )
            )
        else :
            return PluginsPropertiesDTO(
        )

    def testPluginsPropertiesDTO(self):
        """Test PluginsPropertiesDTO"""
        inst_req_only = self.make_instance(include_optional=False)
        inst_req_and_optional = self.make_instance(include_optional=True)


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