Add cpp files for HAL test
[platform/core/system/libdevice-node.git] / unittest / gtest_hal_battery.cpp
1
2 #include <iostream>
3 #include <gtest/gtest.h>
4 #include <system_info.h>
5 #include "hw/battery.h"
6 #include "unittest.h"
7
8 using namespace std;
9
10 /*
11  * main class
12  */
13 struct hw_info *info;
14 struct battery_device *battery_dev;
15 static bool need_featurecheck = true;
16
17 class BATTERYHalTest : public testing::Test
18 {
19         public:
20                 virtual void SetUp()
21                 {
22                         int ret;
23
24                         if (need_featurecheck) {
25                                 ret = system_info_get_platform_bool(FEATURE_BATTERY, &supported);
26                                 EXPECT_EQ(SYSTEM_INFO_ERROR_NONE, ret) << "system_info_get_platform_bool failed";
27                                 need_featurecheck = false;
28                         }
29                 }
30
31                 virtual void TearDown()
32                 {
33
34                 }
35 };
36
37 /*
38  * testcase
39  */
40 TEST_F(BATTERYHalTest, InitP)
41 {
42         int ret;
43
44         if (!supported)
45                 return;
46
47         ret = hw_get_info(BATTERY_HARDWARE_DEVICE_ID,
48                         (const struct hw_info **)&info);
49         EXPECT_EQ(ret, 0) << "Fail to load battery hal (" << ret << ")";
50
51         if (!info->open) {
52                 cout << "There is no function for info open" << endl;
53                 return;
54         }
55         ret = info->open(info, NULL, (struct hw_common**)&battery_dev);
56         EXPECT_EQ(ret, 0) << "Fail to open battery device(" << ret << ")";
57 }
58
59 static void updated_cb(struct battery_info *info, void *data)
60 {
61
62 }
63
64 TEST_F(BATTERYHalTest, RegisterChangedEventP)
65 {
66         int ret;
67
68         if (!supported)
69                 return;
70
71         if (!battery_dev->register_changed_event) {
72                 cout << "There is no function for register_changed_event" << endl;
73                 return;
74         }
75         ret = battery_dev->register_changed_event(updated_cb, NULL);
76         EXPECT_EQ(ret, 0) << "Fail to register_changed_event (" << ret << ")";
77 }
78
79 TEST_F(BATTERYHalTest, UnregisterChangedEventP)
80 {
81         if (!supported)
82                 return;
83
84         if (!battery_dev->unregister_changed_event) {
85                 cout << "There is no function for unregister_changed_event" << endl;
86                 return;
87         }
88         battery_dev->unregister_changed_event(updated_cb);
89 }
90
91 TEST_F(BATTERYHalTest, GetCurrentStateP)
92 {
93         int ret;
94
95         if (!supported)
96                 return;
97
98         if (!battery_dev->get_current_state) {
99                 cout << "There is no function for get_current_state" << endl;
100                 return;
101         }
102         ret = battery_dev->get_current_state(updated_cb, NULL);
103         EXPECT_EQ(ret, 0) << "Fail to get_current_state (" << ret << ")";
104 }
105
106 TEST_F(BATTERYHalTest, DeinitP)
107 {
108         int ret;
109
110         if (!supported)
111                 return;
112
113         if (!info->close) {
114                 cout << "There is no function for info close" << endl;
115                 return;
116         }
117         ret = info->close((struct hw_common *)battery_dev);
118         EXPECT_EQ(ret, 0) << "Fail to close battery device(" << ret << ")";
119 }
120
121 int main(int argc, char **argv)
122 {
123         testing::InitGoogleTest(&argc, argv);
124
125         return RUN_ALL_TESTS();
126 }