Skip to content

Commit 1d75e99

Browse files
committed
adding unit test
1 parent 1a25313 commit 1d75e99

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

tests/aws-cpp-sdk-core-tests/aws/auth/AWSCredentialsProviderTest.cpp

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1236,3 +1236,57 @@ TEST_F(AWSCachedCredentialsTest, ShouldCacheCredenitalAsync)
12361236
ASSERT_TRUE(containCredentials(creds, {"and", "no", "surprises"}));
12371237
ASSERT_FALSE(containCredentials(creds, {"a", "quiet", "life"}));
12381238
}
1239+
1240+
class DefaultAWSCredentialsProviderChainTest : public EnvironmentModifyingTest
1241+
{
1242+
};
1243+
1244+
TEST_F(DefaultAWSCredentialsProviderChainTest, TestProfileConsistency)
1245+
{
1246+
// Create credentials file with test profiles
1247+
Aws::OFStream credsFile(m_credsFileName.c_str(), Aws::OFStream::out | Aws::OFStream::trunc);
1248+
credsFile << "[default]" << std::endl;
1249+
credsFile << "aws_access_key_id = DefaultAccessKey" << std::endl;
1250+
credsFile << "aws_secret_access_key = DefaultSecretKey" << std::endl;
1251+
credsFile << std::endl;
1252+
credsFile << "[test-profile]" << std::endl;
1253+
credsFile << "aws_access_key_id = TestProfileAccessKey" << std::endl;
1254+
credsFile << "aws_secret_access_key = TestProfileSecretKey" << std::endl;
1255+
credsFile.close();
1256+
1257+
// Disable EC2 metadata service for faster tests
1258+
Aws::Environment::SetEnv("AWS_EC2_METADATA_DISABLED", "true", 1);
1259+
1260+
// Test with default profile (empty config)
1261+
{
1262+
Aws::Client::CredentialProviderConfiguration config;
1263+
DefaultAWSCredentialsProviderChain providerChain(config);
1264+
auto creds = providerChain.GetAWSCredentials();
1265+
EXPECT_EQ("DefaultAccessKey", creds.GetAWSAccessKeyId());
1266+
EXPECT_EQ("DefaultSecretKey", creds.GetAWSSecretKey());
1267+
}
1268+
1269+
// Test with specific profile in config
1270+
{
1271+
Aws::Client::CredentialProviderConfiguration config;
1272+
config.profile = "test-profile";
1273+
DefaultAWSCredentialsProviderChain providerChain(config);
1274+
auto creds = providerChain.GetAWSCredentials();
1275+
EXPECT_EQ("TestProfileAccessKey", creds.GetAWSAccessKeyId());
1276+
EXPECT_EQ("TestProfileSecretKey", creds.GetAWSSecretKey());
1277+
}
1278+
1279+
// Test with environment variables overriding profile
1280+
Aws::Environment::SetEnv("AWS_ACCESS_KEY_ID", "EnvAccessKey", 1);
1281+
Aws::Environment::SetEnv("AWS_SECRET_ACCESS_KEY", "EnvSecretKey", 1);
1282+
1283+
{
1284+
Aws::Client::CredentialProviderConfiguration config;
1285+
config.profile = "test-profile";
1286+
DefaultAWSCredentialsProviderChain providerChain(config);
1287+
auto creds = providerChain.GetAWSCredentials();
1288+
// Environment variables should take precedence
1289+
EXPECT_EQ("EnvAccessKey", creds.GetAWSAccessKeyId());
1290+
EXPECT_EQ("EnvSecretKey", creds.GetAWSSecretKey());
1291+
}
1292+
}

0 commit comments

Comments
 (0)