Files
aliyun-openapi-cpp-sdk/test/core/instanceprofilecredentialsprovider_ut.cc
2019-01-18 21:37:30 +08:00

56 lines
1.9 KiB
C++

#include <iostream>
#include <stdio.h>
#include "gtest/gtest.h"
#include "gmock/gmock.h"
#include "alibabacloud/core/InstanceProfileCredentialsProvider.h"
using namespace std;
using namespace AlibabaCloud;
using ::testing::_;
using ::testing::DefaultValue;
class mockInstanceProfileCredentialsProvider: public InstanceProfileCredentialsProvider {
public:
mockInstanceProfileCredentialsProvider(const std::string &roleName, int durationSeconds):
InstanceProfileCredentialsProvider(roleName, durationSeconds) {}
MOCK_METHOD0(getMetadata, std::string());
};
TEST(InstanceProfileCredentialsProvider, basic) {
mockInstanceProfileCredentialsProvider p("test-role-name", 1800);
DefaultValue<std::string>::Set("{\"Code\":\"test-code\",\"AccessKeyId\":\"any-key\",\"AccessKeySecret\":\"any-secret\",\"SecurityToken\":\"any-token\",\"Expiration\":3233}");
EXPECT_CALL(p, getMetadata());
Credentials credentials = p.getCredentials();
EXPECT_TRUE(credentials.accessKeyId() == "any-key");
EXPECT_TRUE(credentials.accessKeySecret() == "any-secret");
EXPECT_TRUE(credentials.sessionToken() == "any-token");
}
TEST(InstanceProfileCredentialsProvider, empty) {
mockInstanceProfileCredentialsProvider p("test-role-name", 1800);
DefaultValue<std::string>::Set("{}");
EXPECT_CALL(p, getMetadata());
Credentials credentials = p.getCredentials();
EXPECT_TRUE(credentials.accessKeyId().empty());
EXPECT_TRUE(credentials.accessKeySecret().empty());
EXPECT_TRUE(credentials.sessionToken().empty());
}
TEST(InstanceProfileCredentialsProvider, empty_1) {
mockInstanceProfileCredentialsProvider p("test-role-name", 1800);
DefaultValue<std::string>::Set("");
EXPECT_CALL(p, getMetadata());
Credentials credentials = p.getCredentials();
EXPECT_TRUE(credentials.accessKeyId().empty());
EXPECT_TRUE(credentials.accessKeySecret().empty());
EXPECT_TRUE(credentials.sessionToken().empty());
}