Skip to content

Commit 25c43df

Browse files
[Confidential Ledger] Refactor tests to remove repeats (Azure#30057)
* tests refactored * updating test-resources.json * fix test error handling * remove comments * update test-resources.json * update test-resources names * update
1 parent 5b74733 commit 25c43df

File tree

7 files changed

+83
-240
lines changed

7 files changed

+83
-240
lines changed

sdk/confidentialledger/azure-security-confidentialledger/src/samples/README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,16 @@ ConfidentialLedgerCertificateClientBuilder confidentialLedgerCertificateClientbu
3030
ConfidentialLedgerCertificateClient confidentialLedgerCertificateClient = confidentialLedgerCertificateClientbuilder.buildClient();
3131

3232
String ledgerId = "java-tests";
33-
// this is a built in test of getLedgerCertificate
3433
Response<BinaryData> ledgerCertificateWithResponse = confidentialLedgerCertificateClient
3534
.getLedgerIdentityWithResponse(ledgerId, null);
3635
BinaryData certificateResponse = ledgerCertificateWithResponse.getValue();
3736
ObjectMapper mapper = new ObjectMapper();
3837
JsonNode jsonNode = mapper.readTree(certificateResponse.toBytes());
39-
String ledgerTslCertificate = jsonNode.get("ledgerTlsCertificate").asText();
38+
String ledgerTlsCertificate = jsonNode.get("ledgerTlsCertificate").asText();
4039

4140

4241
SslContext sslContext = SslContextBuilder.forClient()
43-
.trustManager(new ByteArrayInputStream(ledgerTslCertificate.getBytes(StandardCharsets.UTF_8))).build();
42+
.trustManager(new ByteArrayInputStream(ledgerTlsCertificate.getBytes(StandardCharsets.UTF_8))).build();
4443
reactor.netty.http.client.HttpClient reactorClient = reactor.netty.http.client.HttpClient.create()
4544
.secure(sslContextSpec -> sslContextSpec.sslContext(sslContext));
4645
HttpClient httpClient = new NettyAsyncHttpClientBuilder(reactorClient).wiretap(true).build();

sdk/confidentialledger/azure-security-confidentialledger/src/test/java/com/azure/security/confidentialledger/ConfidentialLedgerClientTestBase.java

Lines changed: 62 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,34 @@
66

77
import com.azure.core.credential.AccessToken;
88
import com.azure.core.http.HttpClient;
9+
import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
910
import com.azure.core.http.policy.HttpLogDetailLevel;
1011
import com.azure.core.http.policy.HttpLogOptions;
12+
import com.azure.core.http.rest.Response;
1113
import com.azure.core.test.TestBase;
1214
import com.azure.core.test.TestMode;
15+
import com.azure.core.util.BinaryData;
1316
import com.azure.core.util.Configuration;
1417
import com.azure.identity.AzureCliCredentialBuilder;
1518
import com.azure.identity.DefaultAzureCredentialBuilder;
1619
import com.azure.security.confidentialledger.certificate.ConfidentialLedgerCertificateClient;
1720
import com.azure.security.confidentialledger.certificate.ConfidentialLedgerCertificateClientBuilder;
21+
import com.fasterxml.jackson.databind.JsonNode;
22+
import com.fasterxml.jackson.databind.ObjectMapper;
1823

24+
import io.netty.handler.ssl.SslContext;
25+
import io.netty.handler.ssl.SslContextBuilder;
1926
import reactor.core.publisher.Mono;
2027

28+
import java.io.ByteArrayInputStream;
29+
import java.io.IOException;
30+
import java.nio.charset.StandardCharsets;
2131
import java.time.OffsetDateTime;
2232

33+
import javax.net.ssl.SSLException;
34+
35+
import org.junit.jupiter.api.Assertions;
36+
2337
class ConfidentialLedgerClientTestBase extends TestBase {
2438
protected ConfidentialLedgerClient confidentialLedgerClient;
2539
protected ConfidentialLedgerClientBuilder confidentialLedgerClientBuilder;
@@ -29,8 +43,7 @@ class ConfidentialLedgerClientTestBase extends TestBase {
2943
protected void beforeTest() {
3044
try {
3145
ConfidentialLedgerCertificateClientBuilder confidentialLedgerCertificateClientBuilder = new ConfidentialLedgerCertificateClientBuilder()
32-
.certificateEndpoint(
33-
Configuration.getGlobalConfiguration().get("IDENTITYSERVICEURI", "https://identity.confidential-ledger.core.azure.com"))
46+
.certificateEndpoint("https://identity.confidential-ledger.core.azure.com")
3447
.httpClient(HttpClient.createDefault())
3548
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
3649
if (getTestMode() == TestMode.PLAYBACK) {
@@ -47,10 +60,10 @@ protected void beforeTest() {
4760
confidentialLedgerCertificateClient = confidentialLedgerCertificateClientBuilder
4861
.buildClient();
4962

50-
String ledgerId = Configuration.getGlobalConfiguration().get("LEDGERID", "emily-java-sdk-tests");
63+
String ledgerId = Configuration.getGlobalConfiguration().get("LEDGER_NAME", "java-sdk-test");
5164

5265
confidentialLedgerClientBuilder = new ConfidentialLedgerClientBuilder()
53-
.ledgerEndpoint(Configuration.getGlobalConfiguration().get("LEDGERURI", "https://emily-java-sdk-tests.confidential-ledger.azure.com"))
66+
.ledgerEndpoint(Configuration.getGlobalConfiguration().get("LEDGER_URI", "https://emily-java-sdk-tests.confidential-ledger.azure.com"))
5467
.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC));
5568
if (getTestMode() == TestMode.PLAYBACK) {
5669
confidentialLedgerClientBuilder
@@ -66,6 +79,51 @@ protected void beforeTest() {
6679
} catch (Exception ex) {
6780
System.out.println("Error thrown from ConfidentialLedgerClientTestBase:" + ex);
6881
}
82+
83+
String ledgerId = Configuration.getGlobalConfiguration().get("LEDGER_NAME", "emily-java-sdk-tests");
84+
Response<BinaryData> ledgerIdentityWithResponse = confidentialLedgerCertificateClient
85+
.getLedgerIdentityWithResponse(ledgerId, null);
86+
BinaryData identityResponse = ledgerIdentityWithResponse.getValue();
87+
ObjectMapper mapper = new ObjectMapper();
88+
89+
JsonNode jsonNode = null;
90+
try {
91+
jsonNode = mapper.readTree(identityResponse.toBytes());
92+
} catch (IOException ex) {
93+
System.out.println("Caught exception " + ex);
94+
Assertions.assertTrue(false);
95+
}
96+
String ledgerTslCertificate = jsonNode.get("ledgerTlsCertificate").asText();
97+
98+
reactor.netty.http.client.HttpClient reactorClient = null;
99+
100+
try {
101+
final SslContext sslContext = SslContextBuilder.forClient().trustManager(new ByteArrayInputStream(ledgerTslCertificate.getBytes(StandardCharsets.UTF_8))).build();
102+
reactorClient = reactor.netty.http.client.HttpClient.create();
103+
reactorClient.secure(sslContextSpec -> sslContextSpec.sslContext(sslContext));
104+
} catch (SSLException ex) {
105+
System.out.println("Caught exception " + ex);
106+
Assertions.assertTrue(false);
107+
}
108+
109+
HttpClient httpClient = new NettyAsyncHttpClientBuilder(reactorClient).wiretap(true).build();
110+
111+
if (getTestMode() == TestMode.PLAYBACK) {
112+
confidentialLedgerClientBuilder
113+
.httpClient(interceptorManager.getPlaybackClient())
114+
.credential(request -> Mono.just(new AccessToken("this_is_a_token", OffsetDateTime.MAX)));
115+
} else if (getTestMode() == TestMode.RECORD) {
116+
confidentialLedgerClientBuilder
117+
.addPolicy(interceptorManager.getRecordPolicy())
118+
.httpClient(httpClient)
119+
.credential(new DefaultAzureCredentialBuilder().build());
120+
} else if (getTestMode() == TestMode.LIVE) {
121+
confidentialLedgerClientBuilder
122+
.credential(new DefaultAzureCredentialBuilder().build())
123+
.httpClient(httpClient);
124+
}
125+
126+
confidentialLedgerClient = confidentialLedgerClientBuilder.buildClient();
69127
}
70128

71129
}

sdk/confidentialledger/azure-security-confidentialledger/src/test/java/com/azure/security/confidentialledger/GetConsortiumMembersTests.java

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -4,67 +4,20 @@
44

55
package com.azure.security.confidentialledger;
66

7-
import com.azure.core.credential.AccessToken;
8-
import com.azure.core.http.HttpClient;
9-
import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
107
import com.azure.core.http.rest.PagedIterable;
118
import com.azure.core.http.rest.RequestOptions;
12-
import com.azure.core.http.rest.Response;
13-
import com.azure.core.test.TestMode;
149
import com.azure.core.util.BinaryData;
15-
import com.azure.core.util.Configuration;
16-
import com.azure.identity.DefaultAzureCredentialBuilder;
1710
import com.fasterxml.jackson.databind.JsonNode;
1811
import com.fasterxml.jackson.databind.ObjectMapper;
1912

20-
import io.netty.handler.ssl.SslContext;
21-
import io.netty.handler.ssl.SslContextBuilder;
22-
import reactor.core.publisher.Mono;
23-
24-
import java.io.ByteArrayInputStream;
2513
import java.io.IOException;
26-
import java.nio.charset.StandardCharsets;
27-
import java.time.OffsetDateTime;
2814

2915
import org.junit.jupiter.api.Assertions;
3016
import org.junit.jupiter.api.Test;
3117

3218
public final class GetConsortiumMembersTests extends ConfidentialLedgerClientTestBase {
3319
@Test
3420
public void testGetConsortiumMembersTests() throws Exception {
35-
String ledgerId = Configuration.getGlobalConfiguration().get("LEDGERID", "emily-java-sdk-tests");
36-
// this is a built in test of getLedgerIdentity
37-
Response<BinaryData> ledgerIdentityWithResponse = confidentialLedgerCertificateClient
38-
.getLedgerIdentityWithResponse(ledgerId, null);
39-
BinaryData identityResponse = ledgerIdentityWithResponse.getValue();
40-
ObjectMapper mapper = new ObjectMapper();
41-
JsonNode jsonNode = mapper.readTree(identityResponse.toBytes());
42-
String ledgerTslCertificate = jsonNode.get("ledgerTlsCertificate").asText();
43-
44-
45-
SslContext sslContext = SslContextBuilder.forClient()
46-
.trustManager(new ByteArrayInputStream(ledgerTslCertificate.getBytes(StandardCharsets.UTF_8))).build();
47-
reactor.netty.http.client.HttpClient reactorClient = reactor.netty.http.client.HttpClient.create()
48-
.secure(sslContextSpec -> sslContextSpec.sslContext(sslContext));
49-
HttpClient httpClient = new NettyAsyncHttpClientBuilder(reactorClient).wiretap(true).build();
50-
51-
if (getTestMode() == TestMode.PLAYBACK) {
52-
confidentialLedgerClientBuilder
53-
.httpClient(interceptorManager.getPlaybackClient())
54-
.credential(request -> Mono.just(new AccessToken("this_is_a_token", OffsetDateTime.MAX)));
55-
} else if (getTestMode() == TestMode.RECORD) {
56-
confidentialLedgerClientBuilder
57-
.addPolicy(interceptorManager.getRecordPolicy())
58-
.httpClient(httpClient)
59-
.credential(new DefaultAzureCredentialBuilder().build());
60-
} else if (getTestMode() == TestMode.LIVE) {
61-
confidentialLedgerClientBuilder
62-
.credential(new DefaultAzureCredentialBuilder().build())
63-
.httpClient(httpClient);
64-
}
65-
66-
ConfidentialLedgerClient confidentialLedgerClient = confidentialLedgerClientBuilder.buildClient();
67-
6821
RequestOptions requestOptions = new RequestOptions();
6922
PagedIterable<BinaryData> pagedIterableResponse = confidentialLedgerClient.listConsortiumMembers(requestOptions);
7023

sdk/confidentialledger/azure-security-confidentialledger/src/test/java/com/azure/security/confidentialledger/GetEnclaveQuotesTests.java

Lines changed: 5 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,72 +4,27 @@
44

55
package com.azure.security.confidentialledger;
66

7-
import com.azure.core.credential.AccessToken;
8-
import com.azure.core.http.HttpClient;
9-
import com.azure.core.http.netty.NettyAsyncHttpClientBuilder;
107
import com.azure.core.http.rest.Response;
11-
import com.azure.core.test.TestMode;
128
import com.azure.core.util.BinaryData;
13-
import com.azure.core.util.Configuration;
14-
import com.azure.identity.DefaultAzureCredentialBuilder;
159
import com.fasterxml.jackson.databind.JsonNode;
1610
import com.fasterxml.jackson.databind.ObjectMapper;
1711

18-
import io.netty.handler.ssl.SslContext;
19-
import io.netty.handler.ssl.SslContextBuilder;
20-
import reactor.core.publisher.Mono;
21-
22-
import java.io.ByteArrayInputStream;
23-
import java.nio.charset.StandardCharsets;
24-
import java.time.OffsetDateTime;
25-
2612
import org.junit.jupiter.api.Assertions;
2713
import org.junit.jupiter.api.Test;
2814

2915
public final class GetEnclaveQuotesTests extends ConfidentialLedgerClientTestBase {
3016

3117
@Test
3218
public void testGetEnclaveQuotes() throws Exception {
33-
34-
String ledgerId = Configuration.getGlobalConfiguration().get("LEDGERID", "emily-java-sdk-tests");
35-
// this is a built in test of getLedgerIdentity
36-
Response<BinaryData> ledgerIdentityWithResponse = confidentialLedgerCertificateClient
37-
.getLedgerIdentityWithResponse(ledgerId, null);
38-
39-
BinaryData identityResponse = ledgerIdentityWithResponse.getValue();
40-
ObjectMapper mapper = new ObjectMapper();
41-
JsonNode jsonNode = mapper.readTree(identityResponse.toBytes());
42-
String ledgerTslCertificate = jsonNode.get("ledgerTlsCertificate").asText();
43-
44-
45-
SslContext sslContext = SslContextBuilder.forClient()
46-
.trustManager(new ByteArrayInputStream(ledgerTslCertificate.getBytes(StandardCharsets.UTF_8))).build();
47-
reactor.netty.http.client.HttpClient reactorClient = reactor.netty.http.client.HttpClient.create()
48-
.secure(sslContextSpec -> sslContextSpec.sslContext(sslContext));
49-
HttpClient httpClient = new NettyAsyncHttpClientBuilder(reactorClient).wiretap(true).build();
50-
51-
if (getTestMode() == TestMode.PLAYBACK) {
52-
confidentialLedgerClientBuilder
53-
.httpClient(interceptorManager.getPlaybackClient())
54-
.credential(request -> Mono.just(new AccessToken("this_is_a_token", OffsetDateTime.MAX)));
55-
} else if (getTestMode() == TestMode.RECORD) {
56-
confidentialLedgerClientBuilder
57-
.addPolicy(interceptorManager.getRecordPolicy())
58-
.httpClient(httpClient)
59-
.credential(new DefaultAzureCredentialBuilder().build());
60-
} else if (getTestMode() == TestMode.LIVE) {
61-
confidentialLedgerClientBuilder
62-
.credential(new DefaultAzureCredentialBuilder().build())
63-
.httpClient(httpClient);
64-
}
65-
66-
ConfidentialLedgerClient client = confidentialLedgerClientBuilder.buildClient();
67-
Response<BinaryData> enclaveQuotesWithResponse = client.getEnclaveQuotesWithResponse(null);
19+
Response<BinaryData> enclaveQuotesWithResponse = confidentialLedgerClient.getEnclaveQuotesWithResponse(null);
6820
Assertions.assertEquals(enclaveQuotesWithResponse.getStatusCode(), 200);
6921
BinaryData parsedResponse = enclaveQuotesWithResponse.getValue();
7022

7123
ObjectMapper objectMapper = new ObjectMapper();
72-
JsonNode responseBodyJson = objectMapper.readTree(parsedResponse.toBytes());
24+
JsonNode responseBodyJson = null;
25+
26+
responseBodyJson = objectMapper.readTree(parsedResponse.toBytes());
27+
7328
JsonNode enclaveQuotes = responseBodyJson.get("enclaveQuotes");
7429
String enclaveQuotesKey = enclaveQuotes.fields().next().getKey();
7530
Assertions.assertEquals(enclaveQuotes.get(enclaveQuotesKey).get("quoteVersion").asText(), "OE_SGX_v1");

0 commit comments

Comments
 (0)