// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) TypeSpec Code Generator.

package azure.clientgenerator.core.clientinitialization.individuallyclient.generated;

// The Java test files under 'generated' package are generated for your reference.
// If you wish to modify these files, please copy them out of the 'generated' package, and modify there.
// See https://aka.ms/azsdk/dpg/java/tests for guide on adding a test.

import azure.clientgenerator.core.clientinitialization.individuallyclient.IndividuallyNestedWithHeaderClient;
import azure.clientgenerator.core.clientinitialization.individuallyclient.IndividuallyNestedWithHeaderClientBuilder;
import azure.clientgenerator.core.clientinitialization.individuallyclient.IndividuallyNestedWithMixedClient;
import azure.clientgenerator.core.clientinitialization.individuallyclient.IndividuallyNestedWithMixedClientBuilder;
import azure.clientgenerator.core.clientinitialization.individuallyclient.IndividuallyNestedWithMultipleClient;
import azure.clientgenerator.core.clientinitialization.individuallyclient.IndividuallyNestedWithMultipleClientBuilder;
import azure.clientgenerator.core.clientinitialization.individuallyclient.IndividuallyNestedWithParamAliasClient;
import azure.clientgenerator.core.clientinitialization.individuallyclient.IndividuallyNestedWithParamAliasClientBuilder;
import azure.clientgenerator.core.clientinitialization.individuallyclient.IndividuallyNestedWithPathClient;
import azure.clientgenerator.core.clientinitialization.individuallyclient.IndividuallyNestedWithPathClientBuilder;
import azure.clientgenerator.core.clientinitialization.individuallyclient.IndividuallyNestedWithQueryClient;
import azure.clientgenerator.core.clientinitialization.individuallyclient.IndividuallyNestedWithQueryClientBuilder;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.test.TestMode;
import com.azure.core.test.TestProxyTestBase;
import com.azure.core.util.Configuration;

class IndividuallyNestedWithPathClientTestBase extends TestProxyTestBase {
    protected IndividuallyNestedWithPathClient individuallyNestedWithPathClient;

    protected IndividuallyNestedWithQueryClient individuallyNestedWithQueryClient;

    protected IndividuallyNestedWithHeaderClient individuallyNestedWithHeaderClient;

    protected IndividuallyNestedWithMultipleClient individuallyNestedWithMultipleClient;

    protected IndividuallyNestedWithMixedClient individuallyNestedWithMixedClient;

    protected IndividuallyNestedWithParamAliasClient individuallyNestedWithParamAliasClient;

    @Override
    protected void beforeTest() {
        IndividuallyNestedWithPathClientBuilder individuallyNestedWithPathClientbuilder
            = new IndividuallyNestedWithPathClientBuilder()
                .endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
                .blobName(Configuration.getGlobalConfiguration().get("BLOBNAME", "blobname"))
                .httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
                .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
        if (getTestMode() == TestMode.RECORD) {
            individuallyNestedWithPathClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
        }
        individuallyNestedWithPathClient = individuallyNestedWithPathClientbuilder.buildClient();

        IndividuallyNestedWithQueryClientBuilder individuallyNestedWithQueryClientbuilder
            = new IndividuallyNestedWithQueryClientBuilder()
                .endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
                .blobName(Configuration.getGlobalConfiguration().get("BLOBNAME", "blobname"))
                .httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
                .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
        if (getTestMode() == TestMode.RECORD) {
            individuallyNestedWithQueryClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
        }
        individuallyNestedWithQueryClient = individuallyNestedWithQueryClientbuilder.buildClient();

        IndividuallyNestedWithHeaderClientBuilder individuallyNestedWithHeaderClientbuilder
            = new IndividuallyNestedWithHeaderClientBuilder()
                .endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
                .name(Configuration.getGlobalConfiguration().get("NAME", "name"))
                .httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
                .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
        if (getTestMode() == TestMode.RECORD) {
            individuallyNestedWithHeaderClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
        }
        individuallyNestedWithHeaderClient = individuallyNestedWithHeaderClientbuilder.buildClient();

        IndividuallyNestedWithMultipleClientBuilder individuallyNestedWithMultipleClientbuilder
            = new IndividuallyNestedWithMultipleClientBuilder()
                .endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
                .name(Configuration.getGlobalConfiguration().get("NAME", "name"))
                .region(Configuration.getGlobalConfiguration().get("REGION", "region"))
                .httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
                .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
        if (getTestMode() == TestMode.RECORD) {
            individuallyNestedWithMultipleClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
        }
        individuallyNestedWithMultipleClient = individuallyNestedWithMultipleClientbuilder.buildClient();

        IndividuallyNestedWithMixedClientBuilder individuallyNestedWithMixedClientbuilder
            = new IndividuallyNestedWithMixedClientBuilder()
                .endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
                .name(Configuration.getGlobalConfiguration().get("NAME", "name"))
                .httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
                .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
        if (getTestMode() == TestMode.RECORD) {
            individuallyNestedWithMixedClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
        }
        individuallyNestedWithMixedClient = individuallyNestedWithMixedClientbuilder.buildClient();

        IndividuallyNestedWithParamAliasClientBuilder individuallyNestedWithParamAliasClientbuilder
            = new IndividuallyNestedWithParamAliasClientBuilder()
                .endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
                .blobName(Configuration.getGlobalConfiguration().get("BLOBNAME", "blobname"))
                .httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
                .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
        if (getTestMode() == TestMode.RECORD) {
            individuallyNestedWithParamAliasClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
        }
        individuallyNestedWithParamAliasClient = individuallyNestedWithParamAliasClientbuilder.buildClient();

    }
}
