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