1 1 | /*
|
2 2 | * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
3 3 | * SPDX-License-Identifier: Apache-2.0
|
4 4 | */
|
5 5 | package aws.sdk.kotlin.services.s3.internal
|
6 6 |
|
7 7 | import aws.sdk.kotlin.runtime.config.profile.loadAwsSharedConfig
|
8 8 | import aws.sdk.kotlin.services.s3.S3Client
|
9 + | import aws.smithy.kotlin.runtime.util.TestFile
|
9 10 | import aws.smithy.kotlin.runtime.util.TestPlatformProvider
|
10 11 | import aws.smithy.kotlin.runtime.util.asyncLazy
|
11 12 | import kotlinx.coroutines.test.runTest
|
12 13 | import kotlin.test.Test
|
13 14 | import kotlin.test.assertEquals
|
14 15 |
|
15 16 | class FinalizeConfigTest {
|
16 17 | @Test
|
17 18 | fun testExplicitConfigTakesPrecedence() = runTest {
|
18 19 | val builder = S3Client.builder()
|
19 20 | builder.config.useArnRegion = false
|
20 21 | builder.config.disableMrap = true
|
21 - | val platform = TestPlatformProvider(
|
22 + | val platform = TestPlatformProvider.of(
|
22 23 | fs = mapOf(
|
23 - | "/users/test/.aws/config" to "[default]\ns3_use_arn_region = true\ns3_disable_multiregion_access_points = false",
|
24 + | "/users/test/.aws/config" to TestFile("[default]\ns3_use_arn_region = true\ns3_disable_multiregion_access_points = false"),
|
24 25 | ),
|
25 26 | )
|
26 27 | val sharedConfig = asyncLazy { loadAwsSharedConfig(platform) }
|
27 28 |
|
28 29 | finalizeS3Config(builder, sharedConfig, platform)
|
29 30 | assertEquals(false, builder.config.useArnRegion)
|
30 31 | assertEquals(true, builder.config.disableMrap)
|
31 32 | }
|
32 33 |
|
33 34 | @Test
|
34 35 | fun testSystemProperties() = runTest {
|
35 36 | val builder = S3Client.builder()
|
36 - | val platform = TestPlatformProvider(
|
37 + | val platform = TestPlatformProvider.of(
|
37 38 | env = mapOf(
|
38 39 | S3Setting.UseArnRegion.envVar to "false",
|
39 40 | S3Setting.DisableMultiRegionAccessPoints.envVar to "true",
|
40 41 | ),
|
41 42 | props = mapOf(
|
42 43 | S3Setting.UseArnRegion.sysProp to "true",
|
43 44 | S3Setting.DisableMultiRegionAccessPoints.sysProp to "false",
|
44 45 | ),
|
45 46 | fs = mapOf(
|
46 - | "/users/test/.aws/config" to "[default]\ns3_use_arn_region = false\ns3_disable_multiregion_access_points = true",
|
47 + | "/users/test/.aws/config" to TestFile("[default]\ns3_use_arn_region = false\ns3_disable_multiregion_access_points = true"),
|
47 48 | ),
|
48 49 | )
|
49 50 | val sharedConfig = asyncLazy { loadAwsSharedConfig(platform) }
|
50 51 |
|
51 52 | finalizeS3Config(builder, sharedConfig, platform)
|
52 53 | assertEquals(true, builder.config.useArnRegion)
|
53 54 | assertEquals(false, builder.config.disableMrap)
|
54 55 | }
|
55 56 |
|
56 57 | @Test
|
57 58 | fun testEnvironmentVariables() = runTest {
|
58 59 | val builder = S3Client.builder()
|
59 - | val platform = TestPlatformProvider(
|
60 + | val platform = TestPlatformProvider.of(
|
60 61 | env = mapOf(
|
61 62 | S3Setting.UseArnRegion.envVar to "false",
|
62 63 | S3Setting.DisableMultiRegionAccessPoints.envVar to "true",
|
63 64 | ),
|
64 65 | fs = mapOf(
|
65 - | "/users/test/.aws/config" to "[default]\ns3_use_arn_region = true\ns3_disable_multiregion_access_points = false",
|
66 + | "/users/test/.aws/config" to TestFile("[default]\ns3_use_arn_region = true\ns3_disable_multiregion_access_points = false"),
|
66 67 | ),
|
67 68 | )
|
68 69 | val sharedConfig = asyncLazy { loadAwsSharedConfig(platform) }
|
69 70 |
|
70 71 | finalizeS3Config(builder, sharedConfig, platform)
|
71 72 | assertEquals(false, builder.config.useArnRegion)
|
72 73 | assertEquals(true, builder.config.disableMrap)
|
73 74 | }
|
74 75 |
|
75 76 | @Test
|
76 77 | fun testProfile() = runTest {
|
77 78 | val builder = S3Client.builder()
|
78 - | val platform = TestPlatformProvider(
|
79 + | val platform = TestPlatformProvider.of(
|
79 80 | fs = mapOf(
|
80 - | "/users/test/.aws/config" to "[default]\ns3_use_arn_region = true\ns3_disable_multiregion_access_points = false",
|
81 + | "/users/test/.aws/config" to TestFile("[default]\ns3_use_arn_region = true\ns3_disable_multiregion_access_points = false"),
|
81 82 | ),
|
82 83 | )
|
83 84 | val sharedConfig = asyncLazy { loadAwsSharedConfig(platform) }
|
84 85 |
|
85 86 | finalizeS3Config(builder, sharedConfig, platform)
|
86 87 | assertEquals(true, builder.config.useArnRegion)
|
87 88 | assertEquals(false, builder.config.disableMrap)
|
88 89 | }
|
89 90 |
|
90 91 | @Test
|