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