• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <fstream>
17 
18 #include <dlfcn.h>
19 #include <gtest/gtest.h>
20 
21 #include "infrared_emitter_controller.h"
22 #include "mmi_log.h"
23 #include "mock.h"
24 
25 #undef MMI_LOG_TAG
26 #define MMI_LOG_TAG "InfraredEmitterControllerTest"
27 
28 namespace OHOS {
29 namespace MMI {
30 #ifndef OHOS_BUILD_PC_UNIT_TEST
31 namespace {
32 using namespace testing::ext;
33 using namespace testing;
34 class ConsumerIrTest : public OHOS::HDI::Consumerir::V1_0::ConsumerIr {
35 public:
36     ConsumerIrTest() = default;
~ConsumerIrTest()37     ~ConsumerIrTest() {}
38 
Transmit(int32_t carrierFreq,const std::vector<int32_t> & pattern,bool & ret)39     int32_t Transmit(int32_t carrierFreq, const std::vector<int32_t>& pattern, bool& ret) { return 0; }
GetCarrierFreqs(bool & ret,std::vector<OHOS::HDI::Consumerir::V1_0::ConsumerIrFreqRange> & range)40     int32_t GetCarrierFreqs(bool& ret, std::vector<OHOS::HDI::Consumerir::V1_0::ConsumerIrFreqRange>& range)
41     {
42         return 0;
43     }
44 };
45 class IDeviceManagerTest : public OHOS::HDI::DeviceManager::V1_0::IDeviceManager {
46 public:
47     IDeviceManagerTest() = default;
48     virtual ~IDeviceManagerTest() = default;
49 
LoadDevice(const std::string & serviceName)50     int32_t LoadDevice(const std::string &serviceName) { return 0; }
UnloadDevice(const std::string & serviceName)51     int32_t UnloadDevice(const std::string &serviceName) { return 0; }
ListAllDevice(std::vector<HDI::DeviceManager::V1_0::HdiDevHostInfo> & deviceInfos)52     int32_t ListAllDevice(std::vector<HDI::DeviceManager::V1_0::HdiDevHostInfo> &deviceInfos) { return 0; }
ListAllHost(std::vector<int> & pidList)53     int32_t ListAllHost(std::vector<int> &pidList) { return 0; }
54 };
55 } // namespace
56 
57 class InfraredEmitterControllerTest : public testing::Test {
58 public:
59     static void SetUpTestCase(void);
60     static void TearDownTestCase(void);
61     void SetUp();
62     void TearDown();
63 
64     static inline std::shared_ptr<MessageParcelMock> messageParcelMock_ = nullptr;
65 };
66 
SetUpTestCase(void)67 void InfraredEmitterControllerTest::SetUpTestCase(void)
68 {
69     messageParcelMock_ = std::make_shared<MessageParcelMock>();
70     MessageParcelMock::messageParcel = messageParcelMock_;
71 }
72 
TearDownTestCase(void)73 void InfraredEmitterControllerTest::TearDownTestCase(void)
74 {
75     MessageParcelMock::messageParcel = nullptr;
76     messageParcelMock_ = nullptr;
77 }
78 
SetUp()79 void InfraredEmitterControllerTest::SetUp() {}
80 
TearDown()81 void InfraredEmitterControllerTest::TearDown() {}
82 
83 /**
84  * @tc.name: InfraredEmitterControllerTest_InitInfraredEmitter_001
85  * @tc.desc: Test the funcation InitInfraredEmitter
86  * @tc.type: FUNC
87  * @tc.require:
88  */
89 HWTEST_F(InfraredEmitterControllerTest, InfraredEmitterControllerTest_InitInfraredEmitter_001, TestSize.Level1)
90 {
91     CALL_TEST_DEBUG;
92     sptr<OHOS::HDI::Consumerir::V1_0::ConsumerIr> consumerIr = new ConsumerIrTest();
93     EXPECT_CALL(*messageParcelMock_, Get(_, _)).WillOnce(Return(consumerIr));
94     InfraredEmitterController controller;
95     ASSERT_NO_FATAL_FAILURE(controller.InitInfraredEmitter());
96 }
97 
98 /**
99  * @tc.name: InfraredEmitterControllerTest_InitInfraredEmitter_002
100  * @tc.desc: Test the funcation InitInfraredEmitter
101  * @tc.type: FUNC
102  * @tc.require:
103  */
104 HWTEST_F(InfraredEmitterControllerTest, InfraredEmitterControllerTest_InitInfraredEmitter_002, TestSize.Level1)
105 {
106     CALL_TEST_DEBUG;
107     EXPECT_CALL(*messageParcelMock_, Get(_, _)).WillOnce(Return(nullptr));
108     EXPECT_CALL(*messageParcelMock_, Get()).WillOnce(Return(nullptr));
109     InfraredEmitterController controller;
110     ASSERT_NO_FATAL_FAILURE(controller.InitInfraredEmitter());
111 }
112 
113 /**
114  * @tc.name: InfraredEmitterControllerTest_InitInfraredEmitter_003
115  * @tc.desc: Test the funcation InitInfraredEmitter
116  * @tc.type: FUNC
117  * @tc.require:
118  */
119 HWTEST_F(InfraredEmitterControllerTest, InfraredEmitterControllerTest_InitInfraredEmitter_003, TestSize.Level1)
120 {
121     CALL_TEST_DEBUG;
122     EXPECT_CALL(*messageParcelMock_, Get(_, _))
123         .WillOnce(Return(nullptr))
124         .WillOnce(Return(nullptr));
125     sptr<OHOS::HDI::DeviceManager::V1_0::IDeviceManager> iDeviceManager = new IDeviceManagerTest();
126     EXPECT_CALL(*messageParcelMock_, Get()).WillOnce(Return(iDeviceManager));
127     InfraredEmitterController controller;
128     ASSERT_NO_FATAL_FAILURE(controller.InitInfraredEmitter());
129 }
130 
131 /**
132  * @tc.name: InfraredEmitterControllerTest_InitInfraredEmitter_004
133  * @tc.desc: Test the funcation InitInfraredEmitter
134  * @tc.type: FUNC
135  * @tc.require:
136  */
137 HWTEST_F(InfraredEmitterControllerTest, InfraredEmitterControllerTest_InitInfraredEmitter_004, TestSize.Level1)
138 {
139     CALL_TEST_DEBUG;
140     sptr<OHOS::HDI::Consumerir::V1_0::ConsumerIr> consumerIr = new ConsumerIrTest();
141     EXPECT_CALL(*messageParcelMock_, Get(_, _))
142         .WillOnce(Return(nullptr))
143         .WillOnce(Return(consumerIr));
144     sptr<OHOS::HDI::DeviceManager::V1_0::IDeviceManager> iDeviceManager = new IDeviceManagerTest();
145     EXPECT_CALL(*messageParcelMock_, Get()).WillOnce(Return(iDeviceManager));
146     InfraredEmitterController controller;
147     ASSERT_NO_FATAL_FAILURE(controller.InitInfraredEmitter());
148 }
149 #endif // OHOS_BUILD_PC_UNIT_TEST
150 } // namespace MMI
151 } // namespace OHOS