# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from devtools_testutils import AzureRecordedTestCase, PowerShellPreparer
import functools
from specs.azure.clientgenerator.core.clientinitialization.individually import (
    IndividuallyNestedWithHeaderClient,
    IndividuallyNestedWithMixedClient,
    IndividuallyNestedWithMultipleClient,
    IndividuallyNestedWithParamAliasClient,
    IndividuallyNestedWithPathClient,
    IndividuallyNestedWithQueryClient,
)


class IndividuallyNestedWithPathClientTestBase(AzureRecordedTestCase):

    def create_client(self, endpoint):
        credential = self.get_credential(IndividuallyNestedWithPathClient)
        return self.create_client_from_credential(
            IndividuallyNestedWithPathClient,
            credential=credential,
            endpoint=endpoint,
        )


IndividuallyNestedWithPathPreparer = functools.partial(
    PowerShellPreparer,
    "individuallynestedwithpath",
    individuallynestedwithpath_endpoint="https://fake_individuallynestedwithpath_endpoint.com",
)


class IndividuallyNestedWithQueryClientTestBase(AzureRecordedTestCase):

    def create_client(self, endpoint):
        credential = self.get_credential(IndividuallyNestedWithQueryClient)
        return self.create_client_from_credential(
            IndividuallyNestedWithQueryClient,
            credential=credential,
            endpoint=endpoint,
        )


IndividuallyNestedWithQueryPreparer = functools.partial(
    PowerShellPreparer,
    "individuallynestedwithquery",
    individuallynestedwithquery_endpoint="https://fake_individuallynestedwithquery_endpoint.com",
)


class IndividuallyNestedWithHeaderClientTestBase(AzureRecordedTestCase):

    def create_client(self, endpoint):
        credential = self.get_credential(IndividuallyNestedWithHeaderClient)
        return self.create_client_from_credential(
            IndividuallyNestedWithHeaderClient,
            credential=credential,
            endpoint=endpoint,
        )


IndividuallyNestedWithHeaderPreparer = functools.partial(
    PowerShellPreparer,
    "individuallynestedwithheader",
    individuallynestedwithheader_endpoint="https://fake_individuallynestedwithheader_endpoint.com",
)


class IndividuallyNestedWithMultipleClientTestBase(AzureRecordedTestCase):

    def create_client(self, endpoint):
        credential = self.get_credential(IndividuallyNestedWithMultipleClient)
        return self.create_client_from_credential(
            IndividuallyNestedWithMultipleClient,
            credential=credential,
            endpoint=endpoint,
        )


IndividuallyNestedWithMultiplePreparer = functools.partial(
    PowerShellPreparer,
    "individuallynestedwithmultiple",
    individuallynestedwithmultiple_endpoint="https://fake_individuallynestedwithmultiple_endpoint.com",
)


class IndividuallyNestedWithMixedClientTestBase(AzureRecordedTestCase):

    def create_client(self, endpoint):
        credential = self.get_credential(IndividuallyNestedWithMixedClient)
        return self.create_client_from_credential(
            IndividuallyNestedWithMixedClient,
            credential=credential,
            endpoint=endpoint,
        )


IndividuallyNestedWithMixedPreparer = functools.partial(
    PowerShellPreparer,
    "individuallynestedwithmixed",
    individuallynestedwithmixed_endpoint="https://fake_individuallynestedwithmixed_endpoint.com",
)


class IndividuallyNestedWithParamAliasClientTestBase(AzureRecordedTestCase):

    def create_client(self, endpoint):
        credential = self.get_credential(IndividuallyNestedWithParamAliasClient)
        return self.create_client_from_credential(
            IndividuallyNestedWithParamAliasClient,
            credential=credential,
            endpoint=endpoint,
        )


IndividuallyNestedWithParamAliasPreparer = functools.partial(
    PowerShellPreparer,
    "individuallynestedwithparamalias",
    individuallynestedwithparamalias_endpoint="https://fake_individuallynestedwithparamalias_endpoint.com",
)
