2 #include <gtest/gtest.h>
\r
8 // Use namespace varprop:: with type names as there are conflicting values in VT_*
\r
12 // The fixture for testing command line parsing.
\r
13 class VariantValueTest : public testing::Test
\r
16 // You can remove any or all of the following functions if its body
\r
21 // You can do set-up work for each test here.
\r
24 virtual ~VariantValueTest()
\r
26 // You can do clean-up work that doesn't throw exceptions here.
\r
29 // If the constructor and destructor are not enough for setting up
\r
30 // and cleaning up each test, you can define the following methods:
\r
32 virtual void SetUp()
\r
34 // Code here will be called immediately after the constructor (right
\r
35 // before each test).
\r
38 virtual void TearDown()
\r
40 // Code here will be called immediately after each test (right
\r
41 // before the destructor).
\r
44 // Objects declared here can be used by all tests in the test case for Foo.
\r
47 // Initialize without type
\r
48 TEST_F(VariantValueTest, Create1)
\r
50 varprop::VariantValue val;
\r
51 EXPECT_EQ(varprop::VT_NULL, val.GetType());
\r
52 EXPECT_FALSE(val.IsBool());
\r
53 EXPECT_FALSE(val.IsFloat());
\r
54 EXPECT_FALSE(val.IsInt());
\r
55 EXPECT_FALSE(val.IsString());
\r
56 EXPECT_FALSE(val.IsTime());
\r
59 // Set and read boolean value
\r
60 TEST_F(VariantValueTest, SetBool1)
\r
62 varprop::VariantValue val;
\r
64 EXPECT_TRUE(val.IsBool());
\r
65 EXPECT_FALSE(val.GetBool());
\r
68 // Set and read boolean value
\r
69 TEST_F(VariantValueTest, SetBool2)
\r
71 varprop::VariantValue val;
\r
73 EXPECT_TRUE(val.IsBool());
\r
74 EXPECT_TRUE(val.GetBool());
\r
77 // Set and read integer value
\r
78 TEST_F(VariantValueTest, SetInt1)
\r
80 varprop::VariantValue val;
\r
82 EXPECT_TRUE(val.IsInt());
\r
83 EXPECT_EQ(0, val.GetInt());
\r
86 // Set and read integer value
\r
87 TEST_F(VariantValueTest, SetInt2)
\r
89 varprop::VariantValue val;
\r
91 EXPECT_TRUE(val.IsInt());
\r
92 EXPECT_EQ(-5, val.GetInt());
\r
95 // Set and read integer value
\r
96 TEST_F(VariantValueTest, SetInt3)
\r
98 varprop::VariantValue val;
\r
100 EXPECT_TRUE(val.IsInt());
\r
101 EXPECT_EQ(15, val.GetInt());
\r
104 // Set and read float value
\r
105 TEST_F(VariantValueTest, SetFloat1)
\r
107 varprop::VariantValue val;
\r
109 EXPECT_TRUE(val.IsFloat());
\r
110 EXPECT_EQ(0.0, val.GetFloat());
\r
113 // Set and read float value
\r
114 TEST_F(VariantValueTest, SetFloat2)
\r
116 varprop::VariantValue val;
\r
117 val.SetFloat(-3.5);
\r
118 EXPECT_TRUE(val.IsFloat());
\r
119 EXPECT_EQ(-3.5, val.GetFloat());
\r
122 // Set and read float value
\r
123 TEST_F(VariantValueTest, SetFloat3)
\r
125 varprop::VariantValue val;
\r
127 EXPECT_TRUE(val.IsFloat());
\r
128 EXPECT_EQ(7.2, val.GetFloat());
\r
131 // Set and read String value
\r
132 TEST_F(VariantValueTest, SetString1)
\r
134 varprop::VariantValue val;
\r
135 val.SetString(_T(""));
\r
136 EXPECT_TRUE(val.IsString());
\r
137 EXPECT_EQ(_T(""), val.GetString());
\r
140 // Set and read String value
\r
141 TEST_F(VariantValueTest, SetString2)
\r
143 varprop::VariantValue val;
\r
144 val.SetString(_T("Boo"));
\r
145 EXPECT_TRUE(val.IsString());
\r
146 EXPECT_EQ(_T("Boo"), val.GetString());
\r
149 // Set and read time value
\r
150 TEST_F(VariantValueTest, SetTime1)
\r
152 varprop::VariantValue val;
\r
154 EXPECT_TRUE(val.IsTime());
\r
155 EXPECT_EQ(0, val.GetTime());
\r
158 // Set and read time value
\r
159 TEST_F(VariantValueTest, SetTime2)
\r
161 varprop::VariantValue val;
\r
163 EXPECT_TRUE(val.IsTime());
\r
164 EXPECT_EQ(382, val.GetTime());
\r
167 // Set and clear value
\r
168 TEST_F(VariantValueTest, Clear1)
\r
170 varprop::VariantValue val;
\r
172 EXPECT_TRUE(val.IsInt());
\r
173 EXPECT_EQ(382, val.GetInt());
\r
175 EXPECT_EQ(varprop::VT_NULL, val.GetType());
\r
176 EXPECT_FALSE(val.IsBool());
\r
177 EXPECT_FALSE(val.IsFloat());
\r
178 EXPECT_FALSE(val.IsInt());
\r
179 EXPECT_FALSE(val.IsString());
\r
180 EXPECT_FALSE(val.IsTime());
\r