1 /*
2 * Copyright (C) 2022 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 #ifdef FEATURE_PASSIVE_SUPPORT
17 #include "passive_ability_stub_test.h"
18
19 #include "ipc_types.h"
20 #include "message_option.h"
21 #include "message_parcel.h"
22
23 #include "common_utils.h"
24 #include "constant_definition.h"
25 #include "passive_ability_proxy.h"
26 #include "location_log.h"
27 #include "subability_common.h"
28 #include "locationhub_ipc_interface_code.h"
29
30 using namespace testing;
31 using namespace testing::ext;
32
33 namespace OHOS {
34 namespace Location {
35 const int UNKNOWN_CODE = -1;
SetUp()36 void PassiveAbilityStubTest::SetUp()
37 {
38 }
39
TearDown()40 void PassiveAbilityStubTest::TearDown()
41 {
42 }
43
44 HWTEST_F(PassiveAbilityStubTest, PassiveAbilityStubTest001, TestSize.Level1)
45 {
46 GTEST_LOG_(INFO)
47 << "PassiveAbilityStubTest, PassiveAbilityStubTest001, TestSize.Level1";
48 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest001 begin");
49 auto passiveAbilityStub = sptr<MockPassiveAbilityStub>(new (std::nothrow) MockPassiveAbilityStub());
50 EXPECT_CALL(*passiveAbilityStub, SendLocationRequest(_)).WillOnce(DoAll(Return(ERRCODE_SUCCESS)));
51 MessageParcel parcel;
52 parcel.WriteInterfaceToken(PassiveAbilityProxy::GetDescriptor());
53 MessageParcel reply;
54 MessageOption option;
55 EXPECT_EQ(ERRCODE_SUCCESS,
56 passiveAbilityStub->OnRemoteRequest(static_cast<uint32_t>(PassiveInterfaceCode::SEND_LOCATION_REQUEST),
57 parcel, reply, option));
58 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest001 end");
59 }
60
61 HWTEST_F(PassiveAbilityStubTest, PassiveAbilityStubTest002, TestSize.Level1)
62 {
63 GTEST_LOG_(INFO)
64 << "PassiveAbilityStubTest, PassiveAbilityStubTest002, TestSize.Level1";
65 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest002 begin");
66 auto passiveAbilityStub = sptr<MockPassiveAbilityStub>(new (std::nothrow) MockPassiveAbilityStub());
67 EXPECT_CALL(*passiveAbilityStub, SetEnable(_)).WillOnce(DoAll(Return(ERRCODE_SUCCESS)));
68 MessageParcel parcel;
69 parcel.WriteInterfaceToken(PassiveAbilityProxy::GetDescriptor());
70 MessageParcel reply;
71 MessageOption option;
72 EXPECT_EQ(ERRCODE_SUCCESS,
73 passiveAbilityStub->OnRemoteRequest(static_cast<uint32_t>(PassiveInterfaceCode::SET_ENABLE),
74 parcel, reply, option));
75 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest002 end");
76 }
77
78 HWTEST_F(PassiveAbilityStubTest, PassiveAbilityStubTest003, TestSize.Level1)
79 {
80 GTEST_LOG_(INFO)
81 << "PassiveAbilityStubTest, PassiveAbilityStubTest003, TestSize.Level1";
82 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest003 begin");
83 auto passiveAbilityStub = sptr<MockPassiveAbilityStub>(new (std::nothrow) MockPassiveAbilityStub());
84 EXPECT_CALL(*passiveAbilityStub, EnableMock()).WillOnce(DoAll(Return(ERRCODE_SUCCESS)));
85 MessageParcel parcel;
86 parcel.WriteInterfaceToken(PassiveAbilityProxy::GetDescriptor());
87 MessageParcel reply;
88 MessageOption option;
89 EXPECT_EQ(ERRCODE_SUCCESS,
90 passiveAbilityStub->OnRemoteRequest(static_cast<uint32_t>(PassiveInterfaceCode::ENABLE_LOCATION_MOCK),
91 parcel, reply, option));
92 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest003 end");
93 }
94
95 HWTEST_F(PassiveAbilityStubTest, PassiveAbilityStubTest004, TestSize.Level1)
96 {
97 GTEST_LOG_(INFO)
98 << "PassiveAbilityStubTest, PassiveAbilityStubTest004, TestSize.Level1";
99 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest004 begin");
100 auto passiveAbilityStub = sptr<MockPassiveAbilityStub>(new (std::nothrow) MockPassiveAbilityStub());
101 EXPECT_CALL(*passiveAbilityStub, DisableMock()).WillOnce(DoAll(Return(ERRCODE_SUCCESS)));
102 MessageParcel parcel;
103 parcel.WriteInterfaceToken(PassiveAbilityProxy::GetDescriptor());
104 MessageParcel reply;
105 MessageOption option;
106 EXPECT_EQ(ERRCODE_SUCCESS,
107 passiveAbilityStub->OnRemoteRequest(static_cast<uint32_t>(PassiveInterfaceCode::DISABLE_LOCATION_MOCK),
108 parcel, reply, option));
109 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest004 end");
110 }
111
112 HWTEST_F(PassiveAbilityStubTest, PassiveAbilityStubTest005, TestSize.Level1)
113 {
114 GTEST_LOG_(INFO)
115 << "PassiveAbilityStubTest, PassiveAbilityStubTest005, TestSize.Level1";
116 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest005 begin");
117 auto passiveAbilityStub = sptr<MockPassiveAbilityStub>(new (std::nothrow) MockPassiveAbilityStub());
118 EXPECT_CALL(*passiveAbilityStub, SendMessage(_, _, _)).WillOnce(DoAll(Return()));
119 MessageParcel parcel;
120 parcel.WriteInterfaceToken(PassiveAbilityProxy::GetDescriptor());
121 MessageParcel reply;
122 MessageOption option;
123 EXPECT_EQ(ERRCODE_SUCCESS,
124 passiveAbilityStub->OnRemoteRequest(static_cast<uint32_t>(PassiveInterfaceCode::SET_MOCKED_LOCATIONS),
125 parcel, reply, option));
126 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest005 end");
127 }
128
129 HWTEST_F(PassiveAbilityStubTest, PassiveAbilityStubTest006, TestSize.Level1)
130 {
131 GTEST_LOG_(INFO)
132 << "PassiveAbilityStubTest, PassiveAbilityStubTest006, TestSize.Level1";
133 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest006 begin");
134 auto passiveAbilityStub = sptr<MockPassiveAbilityStub>(new (std::nothrow) MockPassiveAbilityStub());
135 MessageParcel parcel;
136 parcel.WriteInterfaceToken(PassiveAbilityProxy::GetDescriptor());
137 MessageParcel reply;
138 MessageOption option;
139 EXPECT_EQ(IPC_STUB_UNKNOW_TRANS_ERR,
140 passiveAbilityStub->OnRemoteRequest(UNKNOWN_CODE, parcel, reply, option));
141 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest006 end");
142 }
143
144 HWTEST_F(PassiveAbilityStubTest, PassiveAbilityStubTest007, TestSize.Level1)
145 {
146 GTEST_LOG_(INFO)
147 << "PassiveAbilityStubTest, PassiveAbilityStubTest007, TestSize.Level1";
148 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest007 begin");
149 auto passiveAbilityStub = sptr<MockPassiveAbilityStub>(new (std::nothrow) MockPassiveAbilityStub());
150 MessageParcel parcel;
151 parcel.WriteInterfaceToken(u"UNKNOWN_DESCRIPTOR");
152 MessageParcel reply;
153 MessageOption option;
154 EXPECT_EQ(ERRCODE_SERVICE_UNAVAILABLE,
155 passiveAbilityStub->OnRemoteRequest(UNKNOWN_CODE, parcel, reply, option));
156 LBSLOGI(PASSIVE_TEST, "[PassiveAbilityStubTest] PassiveAbilityStubTest007 end");
157 }
158 } // namespace Location
159 } // namespace OHOS
160 #endif // FEATURE_PASSIVE_SUPPORT
161