# 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
from specs.azure.clientgenerator.core.clientinitialization.individually.aio import (
    IndividuallyNestedWithHeaderClient,
    IndividuallyNestedWithMixedClient,
    IndividuallyNestedWithMultipleClient,
    IndividuallyNestedWithParamAliasClient,
    IndividuallyNestedWithPathClient,
    IndividuallyNestedWithQueryClient,
)


class IndividuallyNestedWithPathClientTestBaseAsync(AzureRecordedTestCase):

    def create_async_client(self, endpoint):
        credential = self.get_credential(IndividuallyNestedWithPathClient, is_async=True)
        return self.create_client_from_credential(
            IndividuallyNestedWithPathClient,
            credential=credential,
            endpoint=endpoint,
        )


class IndividuallyNestedWithQueryClientTestBaseAsync(AzureRecordedTestCase):

    def create_async_client(self, endpoint):
        credential = self.get_credential(IndividuallyNestedWithQueryClient, is_async=True)
        return self.create_client_from_credential(
            IndividuallyNestedWithQueryClient,
            credential=credential,
            endpoint=endpoint,
        )


class IndividuallyNestedWithHeaderClientTestBaseAsync(AzureRecordedTestCase):

    def create_async_client(self, endpoint):
        credential = self.get_credential(IndividuallyNestedWithHeaderClient, is_async=True)
        return self.create_client_from_credential(
            IndividuallyNestedWithHeaderClient,
            credential=credential,
            endpoint=endpoint,
        )


class IndividuallyNestedWithMultipleClientTestBaseAsync(AzureRecordedTestCase):

    def create_async_client(self, endpoint):
        credential = self.get_credential(IndividuallyNestedWithMultipleClient, is_async=True)
        return self.create_client_from_credential(
            IndividuallyNestedWithMultipleClient,
            credential=credential,
            endpoint=endpoint,
        )


class IndividuallyNestedWithMixedClientTestBaseAsync(AzureRecordedTestCase):

    def create_async_client(self, endpoint):
        credential = self.get_credential(IndividuallyNestedWithMixedClient, is_async=True)
        return self.create_client_from_credential(
            IndividuallyNestedWithMixedClient,
            credential=credential,
            endpoint=endpoint,
        )


class IndividuallyNestedWithParamAliasClientTestBaseAsync(AzureRecordedTestCase):

    def create_async_client(self, endpoint):
        credential = self.get_credential(IndividuallyNestedWithParamAliasClient, is_async=True)
        return self.create_client_from_credential(
            IndividuallyNestedWithParamAliasClient,
            credential=credential,
            endpoint=endpoint,
        )
