-
Notifications
You must be signed in to change notification settings - Fork 629
Expand file tree
/
Copy pathRequestBuilderTest.java
More file actions
135 lines (110 loc) · 4.71 KB
/
RequestBuilderTest.java
File metadata and controls
135 lines (110 loc) · 4.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*
* Copyright (C) since 2016 Lightbend Inc. <https://akka.io>
*/
package docs.javadsl;
import akka.http.javadsl.model.ContentTypes;
import akka.http.javadsl.model.headers.ByteRange;
import akka.http.scaladsl.model.headers.RawHeader;
import akka.stream.alpakka.azure.storage.AzureNameKeyCredential;
import akka.stream.alpakka.azure.storage.RetrySettings;
import akka.stream.alpakka.azure.storage.StorageSettings;
import akka.stream.alpakka.azure.storage.headers.ServerSideEncryption;
import akka.stream.alpakka.azure.storage.requests.CreateFile;
import akka.stream.alpakka.azure.storage.requests.GetBlob;
import akka.stream.alpakka.azure.storage.requests.PutBlockBlob;
import akka.stream.alpakka.testkit.javadsl.LogCapturingJunit4;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.identity.ManagedIdentityCredentialBuilder;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
import scala.Option;
public class RequestBuilderTest {
@Rule public final LogCapturingJunit4 logCapturing = new LogCapturingJunit4();
@Test
public void createSimpleRequest() {
// #simple-request-builder
final GetBlob requestBuilder = GetBlob.create();
// #simple-request-builder
Assert.assertEquals(Option.empty(), requestBuilder.versionId());
Assert.assertEquals(Option.empty(), requestBuilder.range());
Assert.assertEquals(Option.empty(), requestBuilder.leaseId());
Assert.assertEquals(Option.empty(), requestBuilder.sse());
}
@Test
public void populateRequestBuilder() {
// #populate-request-builder
final var requestBuilder =
GetBlob.create().withLeaseId("my-lease-id").withRange(ByteRange.createSlice(0, 25));
// #populate-request-builder
Assert.assertEquals(Option.apply("my-lease-id"), requestBuilder.leaseId());
Assert.assertEquals(Option.apply(ByteRange.createSlice(0, 25)), requestBuilder.range());
Assert.assertEquals(Option.empty(), requestBuilder.sse());
}
@Test
public void createRequestBuilderWithMandatoryParams() {
// #request-builder-with-initial-values
final var requestBuilder = CreateFile.create(256L, ContentTypes.TEXT_PLAIN_UTF8);
// #request-builder-with-initial-values
Assert.assertEquals(Option.empty(), requestBuilder.leaseId());
Assert.assertEquals(256L, requestBuilder.maxFileSize());
Assert.assertEquals(ContentTypes.TEXT_PLAIN_UTF8, requestBuilder.contentType());
}
@Test
public void populateServerSideEncryption() {
// #request-builder-with-sse
final var requestBuilder =
PutBlockBlob.create(256L, ContentTypes.TEXT_PLAIN_UTF8)
.withServerSideEncryption(ServerSideEncryption.customerKey("SGVsbG9Xb3JsZA=="));
// #request-builder-with-sse
Assert.assertEquals(
ServerSideEncryption.customerKey("SGVsbG9Xb3JsZA=="), requestBuilder.sse().get());
}
@Test
public void populateAdditionalHeaders() {
// #request-builder-with-additional-headers
final var requestBuilder = GetBlob.create().addHeader("If-Match", "foobar");
// #request-builder-with-additional-headers
Assert.assertEquals(1, requestBuilder.additionalHeaders().size());
Assert.assertEquals(
new RawHeader("If-Match", "foobar"), requestBuilder.additionalHeaders().head());
}
@Test
public void createSettingsWithDefaultAzureCredential() {
// #bearer-token-default
var credential = new DefaultAzureCredentialBuilder().build();
var settings =
StorageSettings.create(
"2024-11-04",
"anon",
java.util.Optional.empty(),
AzureNameKeyCredential.create("myaccount", ""),
java.util.Optional.empty(),
RetrySettings.Default(),
"HmacSHA256")
.withTokenCredential(credential);
// #bearer-token-default
Assert.assertEquals("BearerToken", settings.authorizationType());
Assert.assertTrue(settings.getTokenCredential().isPresent());
}
@Test
public void createSettingsWithManagedIdentityCredential() {
// #bearer-token-managed-identity
// User Assigned Managed Identity
var credential =
new ManagedIdentityCredentialBuilder().clientId("<managed-identity-client-id>").build();
var settings =
StorageSettings.create(
"2024-11-04",
"anon",
java.util.Optional.empty(),
AzureNameKeyCredential.create("myaccount", ""),
java.util.Optional.empty(),
RetrySettings.Default(),
"HmacSHA256")
.withTokenCredential(credential);
// #bearer-token-managed-identity
Assert.assertEquals("BearerToken", settings.authorizationType());
Assert.assertTrue(settings.getTokenCredential().isPresent());
}
}