instanceprofilecredentialsprovider_ut.cc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include "gtest/gtest.h"
  4. #include "gmock/gmock.h"
  5. #include "alibabacloud/core/InstanceProfileCredentialsProvider.h"
  6. using namespace std;
  7. using namespace AlibabaCloud;
  8. using ::testing::_;
  9. using ::testing::DefaultValue;
  10. class mockInstanceProfileCredentialsProvider: public InstanceProfileCredentialsProvider {
  11. public:
  12. mockInstanceProfileCredentialsProvider(const std::string &roleName, int durationSeconds):
  13. InstanceProfileCredentialsProvider(roleName, durationSeconds) {}
  14. MOCK_METHOD0(getMetadata, std::string());
  15. };
  16. TEST(InstanceProfileCredentialsProvider, basic) {
  17. mockInstanceProfileCredentialsProvider p("test-role-name", 1800);
  18. DefaultValue<std::string>::Set("{\"Code\":\"test-code\",\"AccessKeyId\":\"any-key\",\"AccessKeySecret\":\"any-secret\",\"SecurityToken\":\"any-token\",\"Expiration\":3233}");
  19. EXPECT_CALL(p, getMetadata());
  20. Credentials credentials = p.getCredentials();
  21. EXPECT_TRUE(credentials.accessKeyId() == "any-key");
  22. EXPECT_TRUE(credentials.accessKeySecret() == "any-secret");
  23. EXPECT_TRUE(credentials.sessionToken() == "any-token");
  24. }
  25. TEST(InstanceProfileCredentialsProvider, empty) {
  26. mockInstanceProfileCredentialsProvider p("test-role-name", 1800);
  27. DefaultValue<std::string>::Set("{}");
  28. EXPECT_CALL(p, getMetadata());
  29. Credentials credentials = p.getCredentials();
  30. EXPECT_TRUE(credentials.accessKeyId().empty());
  31. EXPECT_TRUE(credentials.accessKeySecret().empty());
  32. EXPECT_TRUE(credentials.sessionToken().empty());
  33. }
  34. TEST(InstanceProfileCredentialsProvider, empty_1) {
  35. mockInstanceProfileCredentialsProvider p("test-role-name", 1800);
  36. DefaultValue<std::string>::Set("");
  37. EXPECT_CALL(p, getMetadata());
  38. Credentials credentials = p.getCredentials();
  39. EXPECT_TRUE(credentials.accessKeyId().empty());
  40. EXPECT_TRUE(credentials.accessKeySecret().empty());
  41. EXPECT_TRUE(credentials.sessionToken().empty());
  42. }