1 #include "env.hpp"
2 #include "env_mock.hpp"
3 #include "util.hpp"
4 
5 #include <gmock/gmock.h>
6 #include <gtest/gtest.h>
7 
8 using ::testing::_;
9 using ::testing::Return;
10 using ::testing::StrEq;
11 
12 namespace env
13 {
14 
15 // Delegate all calls to getEnv() to the mock
get(const char * key) const16 const char* EnvImpl::get(const char* key) const
17 {
18     return mockEnv.get(key);
19 }
20 
21 EnvImpl env_impl;
22 
23 } // namespace env
24 
TEST(EnvTest,NonExistingEnvReturnsEmptyString)25 TEST(EnvTest, NonExistingEnvReturnsEmptyString)
26 {
27     EXPECT_CALL(env::mockEnv, get(_)).WillOnce(Return(nullptr));
28     EXPECT_EQ(std::string(), env::getEnv("NonExistingKey"));
29 }
30 
TEST(EnvTest,EmptyEnv)31 TEST(EnvTest, EmptyEnv)
32 {
33     EXPECT_CALL(env::mockEnv, get(StrEq("AVERAGE_power1")))
34         .WillOnce(Return(nullptr));
35     EXPECT_FALSE(
36         phosphor::utility::isAverageEnvSet(std::make_pair("power", "1")));
37 }
38 
TEST(EnvTest,ValidAverageEnv)39 TEST(EnvTest, ValidAverageEnv)
40 {
41     std::string power = "power";
42     std::string one = "1";
43     std::string two = "2";
44 
45     EXPECT_CALL(env::mockEnv, get(StrEq("AVERAGE_power1")))
46         .WillOnce(Return("true"));
47     EXPECT_CALL(env::mockEnv, get(StrEq("AVERAGE_power2")))
48         .WillOnce(Return("bar"));
49 
50     EXPECT_TRUE(phosphor::utility::isAverageEnvSet(std::make_pair(power, one)));
51     EXPECT_FALSE(
52         phosphor::utility::isAverageEnvSet(std::make_pair(power, two)));
53 }
54