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 #include "location_gnss_geofence_callback_host_test.h"
17 
18 #include "location_gnss_geofence_callback_napi.h"
19 #include "location_log.h"
20 #include "geofence_definition.h"
21 #include "i_gnss_geofence_callback.h"
22 
23 using namespace testing::ext;
24 namespace OHOS {
25 namespace Location {
SetUp()26 void LocationGnssGeofenceCallbackHostTest::SetUp()
27 {
28 }
29 
TearDown()30 void LocationGnssGeofenceCallbackHostTest::TearDown()
31 {
32 }
33 
34 HWTEST_F(LocationGnssGeofenceCallbackHostTest, OnRemoteRequestTest001, TestSize.Level1)
35 {
36     GTEST_LOG_(INFO)
37         << "LocationGnssGeofenceCallbackHostTest, OnRemoteRequestTest001, TestSize.Level1";
38     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] OnRemoteRequestTest001 begin");
39     std::shared_ptr<LocationGnssGeofenceCallbackNapi> callback =
40         std::make_shared<LocationGnssGeofenceCallbackNapi>();
41     ASSERT_TRUE(callback != nullptr);
42     MessageParcel dataParcel;
43     dataParcel.WriteInt32(DEFAULT_NUM_VALUE);
44     dataParcel.WriteInt32(static_cast<int>(GeofenceTransitionEvent::GEOFENCE_TRANSITION_EVENT_ENTER));
45     MessageParcel reply;
46     MessageOption option = { MessageOption::TF_ASYNC };
47     callback->OnRemoteRequest(IGnssGeofenceCallback::RECEIVE_TRANSITION_STATUS_EVENT, dataParcel, reply, option);
48     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] OnRemoteRequestTest001 end");
49 }
50 
51 HWTEST_F(LocationGnssGeofenceCallbackHostTest, OnRemoteRequestTest002, TestSize.Level1)
52 {
53     GTEST_LOG_(INFO)
54         << "LocationGnssGeofenceCallbackHostTest, OnRemoteRequestTest002, TestSize.Level1";
55     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] OnRemoteRequestTest002 begin");
56     std::shared_ptr<LocationGnssGeofenceCallbackNapi> callback =
57         std::make_shared<LocationGnssGeofenceCallbackNapi>();
58     ASSERT_TRUE(callback != nullptr);
59     MessageParcel dataParcel;
60     dataParcel.WriteInt32(DEFAULT_NUM_VALUE);
61     dataParcel.WriteInt32(static_cast<int>(GnssGeofenceOperateType::GNSS_GEOFENCE_OPT_TYPE_ADD));
62     dataParcel.WriteInt32(static_cast<int>(GnssGeofenceOperateResult::GNSS_GEOFENCE_OPERATION_SUCCESS));
63     MessageParcel reply;
64     MessageOption option = { MessageOption::TF_ASYNC };
65     callback->OnRemoteRequest(IGnssGeofenceCallback::REPORT_OPERATION_RESULT_EVENT, dataParcel, reply, option);
66     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] OnRemoteRequestTest002 end");
67 }
68 
69 HWTEST_F(LocationGnssGeofenceCallbackHostTest, IsRemoteDiedTest001, TestSize.Level1)
70 {
71     GTEST_LOG_(INFO)
72         << "LocationGnssGeofenceCallbackHostTest, IsRemoteDiedTest001, TestSize.Level1";
73     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] IsRemoteDiedTest001 begin");
74     std::shared_ptr<LocationGnssGeofenceCallbackNapi> callback =
75         std::make_shared<LocationGnssGeofenceCallbackNapi>();
76     ASSERT_TRUE(callback != nullptr);
77     callback->IsRemoteDied();
78     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] IsRemoteDiedTest001 end");
79 }
80 
81 HWTEST_F(LocationGnssGeofenceCallbackHostTest, DeleteHandlerTest001, TestSize.Level1)
82 {
83     GTEST_LOG_(INFO)
84         << "LocationGnssGeofenceCallbackHostTest, DeleteHandlerTest001, TestSize.Level1";
85     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] DeleteHandlerTest001 begin");
86     std::shared_ptr<LocationGnssGeofenceCallbackNapi> callback =
87         std::make_shared<LocationGnssGeofenceCallbackNapi>();
88     ASSERT_TRUE(callback != nullptr);
89     callback->DeleteHandler();
90     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] DeleteHandlerTest001 end");
91 }
92 
93 HWTEST_F(LocationGnssGeofenceCallbackHostTest, LatchTest001, TestSize.Level1)
94 {
95     GTEST_LOG_(INFO)
96         << "LocationGnssGeofenceCallbackHostTest, LatchTest001, TestSize.Level1";
97     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] LatchTest001 begin");
98     std::shared_ptr<LocationGnssGeofenceCallbackNapi> callback =
99         std::make_shared<LocationGnssGeofenceCallbackNapi>();
100     ASSERT_TRUE(callback != nullptr);
101     callback->SetCount(1);
102     int countNum = callback->GetCount();
103     ASSERT_TRUE(countNum == DEFAULT_NUM_VALUE);
104     callback->Wait(DEFAULT_CALLBACK_WAIT_TIME);
105     countNum = callback->GetCount();
106     ASSERT_TRUE(countNum == DEFAULT_NUM_VALUE);
107     callback->CountDown();
108     countNum = callback->GetCount();
109     ASSERT_TRUE(countNum != DEFAULT_NUM_VALUE);
110     callback->SetCount(1);
111     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] LatchTest001 end");
112 }
113 
114 HWTEST_F(LocationGnssGeofenceCallbackHostTest, FenceIdOperationTest001, TestSize.Level1)
115 {
116     GTEST_LOG_(INFO)
117         << "LocationGnssGeofenceCallbackHostTest, FenceIdOperationTest001, TestSize.Level1";
118     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] FenceIdOperationTest001 begin");
119     std::shared_ptr<LocationGnssGeofenceCallbackNapi> callback =
120         std::make_shared<LocationGnssGeofenceCallbackNapi>();
121     ASSERT_TRUE(callback != nullptr);
122     callback->SetFenceId(DEFAULT_NUM_VALUE);
123     int fenceId = callback->GetFenceId();
124     ASSERT_TRUE(fenceId == DEFAULT_NUM_VALUE);
125     callback->ClearFenceId();
126     fenceId = callback->GetFenceId();
127     ASSERT_TRUE(fenceId != DEFAULT_NUM_VALUE);
128     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] FenceIdOperationTest001 end");
129 }
130 
131 HWTEST_F(LocationGnssGeofenceCallbackHostTest, GeofenceOperationTypeTest001, TestSize.Level1)
132 {
133     GTEST_LOG_(INFO)
134         << "LocationGnssGeofenceCallbackHostTest, GeofenceOperationTypeTest001, TestSize.Level1";
135     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] GeofenceOperationTypeTest001 begin");
136     std::shared_ptr<LocationGnssGeofenceCallbackNapi> callback =
137         std::make_shared<LocationGnssGeofenceCallbackNapi>();
138     ASSERT_TRUE(callback != nullptr);
139     GnssGeofenceOperateType optType = static_cast<GnssGeofenceOperateType>(0);
140     callback->SetGeofenceOperationType(optType);
141     GnssGeofenceOperateType optResultType = callback->GetGeofenceOperationType();
142     ASSERT_TRUE(optResultType == optType);
143     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] GeofenceOperationTypeTest001 end");
144 }
145 
146 HWTEST_F(LocationGnssGeofenceCallbackHostTest, GeofenceOperationResultTest001, TestSize.Level1)
147 {
148     GTEST_LOG_(INFO)
149         << "LocationGnssGeofenceCallbackHostTest, GeofenceOperationResultTest001, TestSize.Level1";
150     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] GeofenceOperationResultTest001 begin");
151     std::shared_ptr<LocationGnssGeofenceCallbackNapi> callback =
152         std::make_shared<LocationGnssGeofenceCallbackNapi>();
153     ASSERT_TRUE(callback != nullptr);
154     GnssGeofenceOperateResult optValue = static_cast<GnssGeofenceOperateResult>(0);
155     callback->SetGeofenceOperationResult(optValue);
156     GnssGeofenceOperateResult optResult = callback->GetGeofenceOperationResult();
157     ASSERT_TRUE(optValue == optResult);
158     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] GeofenceOperationResultTest001 end");
159 }
160 
161 HWTEST_F(LocationGnssGeofenceCallbackHostTest, GeofenceOperationResultTest002, TestSize.Level1)
162 {
163     GTEST_LOG_(INFO)
164         << "LocationGnssGeofenceCallbackHostTest, GeofenceOperationResultTest002, TestSize.Level1";
165     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] GeofenceOperationResultTest002 begin");
166     std::shared_ptr<LocationGnssGeofenceCallbackNapi> callback =
167         std::make_shared<LocationGnssGeofenceCallbackNapi>();
168     ASSERT_TRUE(callback != nullptr);
169     callback->SetGeofenceOperationResult(GnssGeofenceOperateResult::GNSS_GEOFENCE_OPERATION_SUCCESS);
170     callback->DealGeofenceOperationResult();
171     callback->SetGeofenceOperationResult(GnssGeofenceOperateResult::GNSS_GEOFENCE_OPERATION_ERROR_UNKNOWN);
172     callback->DealGeofenceOperationResult();
173     callback->SetGeofenceOperationResult(GnssGeofenceOperateResult::GNSS_GEOFENCE_OPERATION_ERROR_TOO_MANY_GEOFENCES);
174     callback->DealGeofenceOperationResult();
175     callback->SetGeofenceOperationResult(GnssGeofenceOperateResult::GNSS_GEOFENCE_OPERATION_ERROR_GEOFENCE_ID_EXISTS);
176     callback->DealGeofenceOperationResult();
177     callback->SetGeofenceOperationResult(GnssGeofenceOperateResult::GNSS_GEOFENCE_OPERATION_ERROR_PARAMS_INVALID);
178     callback->DealGeofenceOperationResult();
179     LBSLOGI(GEOFENCE_SDK_TEST, "[LocationGnssGeofenceCallbackHostTest] GeofenceOperationResultTest002 end");
180 }
181 } // namespace Location
182 } // namespace OHOS