3
3
4
4
package software.aws.toolkits.jetbrains.core
5
5
6
+ import com.github.tomakehurst.wiremock.WireMockServer
7
+ import com.github.tomakehurst.wiremock.client.WireMock.aResponse
8
+ import com.github.tomakehurst.wiremock.client.WireMock.any
9
+ import com.github.tomakehurst.wiremock.client.WireMock.anyRequestedFor
10
+ import com.github.tomakehurst.wiremock.client.WireMock.anyUrl
11
+ import com.github.tomakehurst.wiremock.client.WireMock.stubFor
12
+ import com.github.tomakehurst.wiremock.client.WireMock.verify
13
+ import com.github.tomakehurst.wiremock.core.WireMockConfiguration
14
+ import com.github.tomakehurst.wiremock.matching.ContainsPattern
6
15
import com.intellij.openapi.application.ApplicationManager
7
16
import com.intellij.openapi.util.Disposer
8
17
import com.intellij.openapi.util.use
@@ -20,6 +29,7 @@ import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption
20
29
import software.amazon.awssdk.core.client.config.SdkClientOption
21
30
import software.amazon.awssdk.core.signer.Signer
22
31
import software.amazon.awssdk.http.SdkHttpClient
32
+ import software.amazon.awssdk.services.lambda.LambdaClient
23
33
import software.aws.toolkits.core.region.Endpoint
24
34
import software.aws.toolkits.core.region.Service
25
35
import software.aws.toolkits.core.region.anAwsRegion
@@ -173,6 +183,29 @@ class AwsClientManagerTest {
173
183
assertThat(second).isSameAs(first)
174
184
}
175
185
186
+ @Test
187
+ fun userAgentIsPassed () {
188
+ val wireMockServer = WireMockServer (WireMockConfiguration .wireMockConfig())
189
+ try {
190
+ wireMockServer.start()
191
+
192
+ stubFor(any(anyUrl()).willReturn(aResponse().withStatus(200 )))
193
+
194
+ val sut = getClientManager().createNewClient(
195
+ LambdaClient ::class ,
196
+ regionProvider.createAwsRegion(),
197
+ credentialManager.createCredentialProvider(),
198
+ endpointOverride = wireMockServer.baseUrl()
199
+ )
200
+
201
+ sut.listFunctions()
202
+
203
+ verify(anyRequestedFor(anyUrl()).withHeader(" User-Agent" , ContainsPattern (" AWS-Toolkit-For-JetBrains/" )))
204
+ } finally {
205
+ wireMockServer.stop()
206
+ }
207
+ }
208
+
176
209
// Test against real version so bypass ServiceManager for the client manager
177
210
private fun getClientManager () = AwsClientManager ()
178
211
0 commit comments