# 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.default.aio import (
    HeaderParamClient,
    MixedParamsClient,
    MultipleParamsClient,
    ParamAliasClient,
    PathParamClient,
    QueryParamClient,
)


class HeaderParamClientTestBaseAsync(AzureRecordedTestCase):

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


class MultipleParamsClientTestBaseAsync(AzureRecordedTestCase):

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


class MixedParamsClientTestBaseAsync(AzureRecordedTestCase):

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


class PathParamClientTestBaseAsync(AzureRecordedTestCase):

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


class ParamAliasClientTestBaseAsync(AzureRecordedTestCase):

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


class QueryParamClientTestBaseAsync(AzureRecordedTestCase):

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