Skip to content

Commit 13833d9

Browse files
authored
misc: add test for ServicePresignConfig-based presigning (#870)
1 parent 4e925f7 commit 13833d9

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

services/polly/e2eTest/src/PollyPresignerTest.kt

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@
44
*/
55
package aws.sdk.kotlin.services.polly
66

7+
import aws.sdk.kotlin.runtime.auth.credentials.DefaultChainCredentialsProvider
8+
import aws.sdk.kotlin.services.polly.endpoints.DefaultEndpointProvider
9+
import aws.sdk.kotlin.services.polly.endpoints.EndpointParameters
710
import aws.sdk.kotlin.services.polly.model.OutputFormat
811
import aws.sdk.kotlin.services.polly.model.SynthesizeSpeechRequest
912
import aws.sdk.kotlin.services.polly.model.VoiceId
13+
import aws.sdk.kotlin.services.polly.presigners.PollyPresignConfig
1014
import aws.sdk.kotlin.services.polly.presigners.presign
1115
import aws.sdk.kotlin.testing.withAllEngines
16+
import aws.smithy.kotlin.runtime.auth.awssigning.SigningContextualizedEndpoint
1217
import aws.smithy.kotlin.runtime.http.SdkHttpClient
1318
import aws.smithy.kotlin.runtime.http.response.complete
1419
import kotlinx.coroutines.runBlocking
@@ -43,4 +48,37 @@ class PollyPresignerTest {
4348
assertEquals(200, call.response.status.value, "presigned polly request failed for engine: $engine")
4449
}
4550
}
51+
52+
@Test
53+
fun presignConfigBasedPresign() = runBlocking {
54+
val request = SynthesizeSpeechRequest {
55+
voiceId = VoiceId.Salli
56+
outputFormat = OutputFormat.Pcm
57+
text = "hello world"
58+
}
59+
60+
val presignConfig = PollyPresignConfig {
61+
credentialsProvider = DefaultChainCredentialsProvider()
62+
endpointProvider = {
63+
val endpoint = DefaultEndpointProvider().resolveEndpoint(
64+
EndpointParameters.invoke {
65+
region = it.region
66+
},
67+
)
68+
SigningContextualizedEndpoint(endpoint, it)
69+
}
70+
region = "us-east-1"
71+
}
72+
73+
val presignedRequest = request.presign(presignConfig, 10.seconds)
74+
75+
withAllEngines { engine ->
76+
val httpClient = SdkHttpClient(engine)
77+
78+
val call = httpClient.call(presignedRequest)
79+
call.complete()
80+
81+
assertEquals(200, call.response.status.value, "presigned polly request failed for engine: $engine")
82+
}
83+
}
4684
}

0 commit comments

Comments
 (0)