Skip to content

Commit

Permalink
Use azure-core-test APIs to manage getting HttpClient in test (#4520)
Browse files Browse the repository at this point in the history
Use APIs from `TestBase` to get the `HttpClient` used in generated test
code. These APIs will use the proper `HttpClient` implementation based
on the environment setup when `azure-sdk-for-java` runs tests.
  • Loading branch information
alzimmermsft authored Sep 25, 2024
1 parent 8eb635f commit c801601
Show file tree
Hide file tree
Showing 97 changed files with 587 additions and 1,236 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -92,41 +92,45 @@ public ProtocolTestWriter(TestContext testContext) {
}
methodBlock.line(".%1$s(%2$s)", serviceClientProperty.getAccessorMethodSuffix(), expr);
});
methodBlock.line(".httpClient(HttpClient.createDefault())");
methodBlock.line(".httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))");
methodBlock.line(".httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));");
methodBlock.decreaseIndent();

JavaIfBlock codeBlock = methodBlock.ifBlock("getTestMode() == TestMode.PLAYBACK", ifBlock -> {
if (isTokenCredential) {
ifBlock.line(
String.format("%1$s.httpClient(interceptorManager.getPlaybackClient())", builderVarName));
ifBlock.line(".credential(new MockTokenCredential());");
} else {
ifBlock.line(
String.format("%1$s.httpClient(interceptorManager.getPlaybackClient());", builderVarName));
}
}).elseIfBlock("getTestMode() == TestMode.RECORD", ifBlock -> {
if (isTokenCredential) {
ifBlock.line(
String.format("%1$s.addPolicy(interceptorManager.getRecordPolicy())", builderVarName));
ifBlock.line(".credential(new DefaultAzureCredentialBuilder().build());");
} else {
ifBlock.line(
String.format("%1$s.addPolicy(interceptorManager.getRecordPolicy());", builderVarName));
}
});
JavaIfBlock codeBlock = null;
if (isTokenCredential) {
codeBlock = methodBlock.ifBlock("getTestMode() == TestMode.PLAYBACK",
ifBlock -> ifBlock.line(builderVarName + ".credential(new MockTokenCredential());"));
}

if (codeBlock != null) {
codeBlock = codeBlock.elseIfBlock("getTestMode() == TestMode.RECORD",
recordModeBlock(isTokenCredential, builderVarName));
} else {
codeBlock = methodBlock.ifBlock("getTestMode() == TestMode.RECORD",
recordModeBlock(isTokenCredential, builderVarName));
}

if (isTokenCredential) {
codeBlock.elseIfBlock("getTestMode() == TestMode.LIVE", ifBlock -> {
ifBlock.line(String.format("%1$s.credential(new DefaultAzureCredentialBuilder().build());",
builderVarName));
ifBlock.line(builderVarName + ".credential(new DefaultAzureCredentialBuilder().build());");
});
}

methodBlock.line(String.format("%1$s = %2$s.%3$s();", clientVarName, builderVarName,
syncClient.getClientBuilder().getBuilderMethodNameForSyncClient(syncClient)));
methodBlock.line();
} ;
}
};
}

private static Consumer<JavaBlock> recordModeBlock(boolean isTokenCredential, String builderVarName) {
return ifBlock -> {
if (isTokenCredential) {
ifBlock.line(builderVarName + ".addPolicy(interceptorManager.getRecordPolicy())");
ifBlock.line(".credential(new DefaultAzureCredentialBuilder().build());");
} else {
ifBlock.line(builderVarName + ".addPolicy(interceptorManager.getRecordPolicy());");
}
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import com._specs_.azure.clientgenerator.core.access.PublicOperationClient;
import com._specs_.azure.clientgenerator.core.access.RelativeModelInOperationClient;
import com._specs_.azure.clientgenerator.core.access.SharedModelInOperationClient;
import com.azure.core.http.HttpClient;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.test.TestMode;
Expand All @@ -33,44 +32,36 @@ class AccessClientTestBase extends TestProxyTestBase {
protected void beforeTest() {
AccessClientBuilder publicOperationClientbuilder = new AccessClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
publicOperationClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
publicOperationClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
publicOperationClient = publicOperationClientbuilder.buildPublicOperationClient();

AccessClientBuilder internalOperationClientbuilder = new AccessClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
internalOperationClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
internalOperationClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
internalOperationClient = internalOperationClientbuilder.buildInternalOperationClient();

AccessClientBuilder sharedModelInOperationClientbuilder = new AccessClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
sharedModelInOperationClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
sharedModelInOperationClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
sharedModelInOperationClient = sharedModelInOperationClientbuilder.buildSharedModelInOperationClient();

AccessClientBuilder relativeModelInOperationClientbuilder = new AccessClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
relativeModelInOperationClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
relativeModelInOperationClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
relativeModelInOperationClient = relativeModelInOperationClientbuilder.buildRelativeModelInOperationClient();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

import com._specs_.azure.clientgenerator.core.flattenproperty.FlattenPropertyClient;
import com._specs_.azure.clientgenerator.core.flattenproperty.FlattenPropertyClientBuilder;
import com.azure.core.http.HttpClient;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.test.TestMode;
Expand All @@ -24,11 +23,9 @@ class FlattenPropertyClientTestBase extends TestProxyTestBase {
protected void beforeTest() {
FlattenPropertyClientBuilder flattenPropertyClientbuilder = new FlattenPropertyClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
flattenPropertyClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
flattenPropertyClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
flattenPropertyClient = flattenPropertyClientbuilder.buildClient();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

import com._specs_.azure.clientgenerator.core.usage.UsageClient;
import com._specs_.azure.clientgenerator.core.usage.UsageClientBuilder;
import com.azure.core.http.HttpClient;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.test.TestMode;
Expand All @@ -24,11 +23,9 @@ class UsageClientTestBase extends TestProxyTestBase {
protected void beforeTest() {
UsageClientBuilder usageClientbuilder = new UsageClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
usageClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
usageClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
usageClient = usageClientbuilder.buildClient();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

import com._specs_.azure.core.basic.BasicClient;
import com._specs_.azure.core.basic.BasicClientBuilder;
import com.azure.core.http.HttpClient;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.test.TestMode;
Expand All @@ -24,11 +23,9 @@ class BasicClientTestBase extends TestProxyTestBase {
protected void beforeTest() {
BasicClientBuilder basicClientbuilder = new BasicClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
basicClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
basicClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
basicClient = basicClientbuilder.buildClient();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

import com._specs_.azure.core.lro.rpc.RpcClient;
import com._specs_.azure.core.lro.rpc.RpcClientBuilder;
import com.azure.core.http.HttpClient;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.test.TestMode;
Expand All @@ -24,11 +23,9 @@ class RpcClientTestBase extends TestProxyTestBase {
protected void beforeTest() {
RpcClientBuilder rpcClientbuilder = new RpcClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
rpcClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
rpcClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
rpcClient = rpcClientbuilder.buildClient();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

import com._specs_.azure.core.lro.standard.StandardClient;
import com._specs_.azure.core.lro.standard.StandardClientBuilder;
import com.azure.core.http.HttpClient;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.test.TestMode;
Expand All @@ -24,11 +23,9 @@ class StandardClientTestBase extends TestProxyTestBase {
protected void beforeTest() {
StandardClientBuilder standardClientbuilder = new StandardClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
standardClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
standardClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
standardClient = standardClientbuilder.buildClient();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

import com._specs_.azure.core.model.ModelClient;
import com._specs_.azure.core.model.ModelClientBuilder;
import com.azure.core.http.HttpClient;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.test.TestMode;
Expand All @@ -24,11 +23,9 @@ class ModelClientTestBase extends TestProxyTestBase {
protected void beforeTest() {
ModelClientBuilder modelClientbuilder = new ModelClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
modelClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
modelClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
modelClient = modelClientbuilder.buildClient();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import com._specs_.azure.core.page.PageClient;
import com._specs_.azure.core.page.PageClientBuilder;
import com._specs_.azure.core.page.TwoModelsAsPageItemClient;
import com.azure.core.http.HttpClient;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.test.TestMode;
Expand All @@ -27,22 +26,18 @@ class PageClientTestBase extends TestProxyTestBase {
protected void beforeTest() {
PageClientBuilder pageClientbuilder = new PageClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
pageClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
pageClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
pageClient = pageClientbuilder.buildClient();

PageClientBuilder twoModelsAsPageItemClientbuilder = new PageClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
twoModelsAsPageItemClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
twoModelsAsPageItemClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
twoModelsAsPageItemClient = twoModelsAsPageItemClientbuilder.buildTwoModelsAsPageItemClient();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

import com._specs_.azure.core.scalar.ScalarClient;
import com._specs_.azure.core.scalar.ScalarClientBuilder;
import com.azure.core.http.HttpClient;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.test.TestMode;
Expand All @@ -24,11 +23,9 @@ class ScalarClientTestBase extends TestProxyTestBase {
protected void beforeTest() {
ScalarClientBuilder scalarClientbuilder = new ScalarClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
scalarClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
scalarClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
scalarClient = scalarClientbuilder.buildClient();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

import com._specs_.azure.core.traits.TraitsClient;
import com._specs_.azure.core.traits.TraitsClientBuilder;
import com.azure.core.http.HttpClient;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.test.TestMode;
Expand All @@ -24,11 +23,9 @@ class TraitsClientTestBase extends TestProxyTestBase {
protected void beforeTest() {
TraitsClientBuilder traitsClientbuilder = new TraitsClientBuilder()
.endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "http://localhost:3000"))
.httpClient(HttpClient.createDefault())
.httpClient(getHttpClientOrUsePlayback(getHttpClients().findFirst().orElse(null)))
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
if (getTestMode() == TestMode.PLAYBACK) {
traitsClientbuilder.httpClient(interceptorManager.getPlaybackClient());
} else if (getTestMode() == TestMode.RECORD) {
if (getTestMode() == TestMode.RECORD) {
traitsClientbuilder.addPolicy(interceptorManager.getRecordPolicy());
}
traitsClient = traitsClientbuilder.buildClient();
Expand Down
Loading

0 comments on commit c801601

Please sign in to comment.