# coding: utf-8

"""
    Metal API

    The version of the OpenAPI document: 1.0.0
    Contact: support@equinixmetal.com
    Generated by OpenAPI Generator (https://openapi-generator.tech)

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


import unittest

from equinix.services.metalv1.models.plan import Plan

class TestPlan(unittest.TestCase):
    """Plan unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> Plan:
        """Test Plan
            include_option 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 `Plan`
        """
        model = Plan()
        if include_optional:
            return Plan(
                available_in = [
                    equinix.services.metalv1.models.plan_available_in_inner.Plan_available_in_inner(
                        href = '', 
                        price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
                            hour = 1.23, 
                            href = '', ), )
                    ],
                available_in_metros = [
                    equinix.services.metalv1.models.plan_available_in_metros_inner.Plan_available_in_metros_inner(
                        href = '', 
                        price = equinix.services.metalv1.models.plan_available_in_inner_price.Plan_available_in_inner_price(
                            hour = 1.23, 
                            href = '', ), )
                    ],
                categories = [
                    ''
                    ],
                var_class = 'm3.large.x86',
                deployment_types = [
                    'on_demand'
                    ],
                description = '',
                href = '',
                id = '',
                legacy = True,
                line = '',
                name = '',
                pricing = equinix.services.metalv1.models.pricing.pricing(),
                slug = 'm3.large.x86',
                specs = equinix.services.metalv1.models.plan_specs.Plan_specs(
                    cpus = [
                        equinix.services.metalv1.models.plan_specs_cpus_inner.Plan_specs_cpus_inner(
                            count = 56, 
                            href = '', 
                            type = '', )
                        ], 
                    drives = [
                        equinix.services.metalv1.models.plan_specs_drives_inner.Plan_specs_drives_inner(
                            category = '', 
                            count = 56, 
                            href = '', 
                            size = '3.84TB', 
                            type = '', )
                        ], 
                    features = equinix.services.metalv1.models.plan_specs_features.Plan_specs_features(
                        href = '', 
                        raid = True, 
                        txt = True, 
                        uefi = True, ), 
                    href = '', 
                    memory = equinix.services.metalv1.models.plan_specs_memory.Plan_specs_memory(
                        href = '', 
                        total = '', ), 
                    nics = [
                        equinix.services.metalv1.models.plan_specs_nics_inner.Plan_specs_nics_inner(
                            count = 2, 
                            href = '', 
                            type = '', )
                        ], ),
                type = 'standard'
            )
        else:
            return Plan(
        )
        """

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

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