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 "gtest/gtest.h" 17 #define private public 18 #include "VirtualLocation.h" 19 #include "SharedData.h" 20 21 namespace { 22 bool g_executeCallback = false; 23 LocDataUpdateCallback(const int8_t * data,uint32_t len)24 void LocDataUpdateCallback(const int8_t *data, uint32_t len) 25 { 26 (void)data; 27 (void)len; 28 g_executeCallback = true; 29 } 30 TEST(VirtualLocationTest,GetMockPointerTest)31 TEST(VirtualLocationTest, GetMockPointerTest) 32 { 33 const int8_t* ptr = VirtualLocation::GetInstance().GetMockPointer(); 34 EXPECT_TRUE(ptr != nullptr); 35 } 36 TEST(VitualLocationTest,GetMockLenTest)37 TEST(VitualLocationTest, GetMockLenTest) 38 { 39 uint32_t len = VirtualLocation::GetInstance().GetMockLen(); 40 EXPECT_EQ(len, 1); // 1 is default mockLen value 41 } 42 TEST(VirtualLocationTest,SetCallBackTest)43 TEST(VirtualLocationTest, SetCallBackTest) 44 { 45 VirtualLocation::GetInstance().SetCallBack(LocDataUpdateCallback); 46 EXPECT_NE(VirtualLocation::GetInstance().GetCallBack(), nullptr); 47 } 48 TEST(VirtualLocationTest,SetSubscribeTest)49 TEST(VirtualLocationTest, SetSubscribeTest) 50 { 51 VirtualLocation::GetInstance().SetSubscribe(true); 52 EXPECT_TRUE(VirtualLocation::GetInstance().IsSubscribe()); 53 } 54 TEST(VirtualLocationTest,ExecCallBackTest)55 TEST(VirtualLocationTest, ExecCallBackTest) 56 { 57 VirtualLocation::GetInstance().ExecCallBack(); 58 EXPECT_TRUE(g_executeCallback); 59 } 60 TEST(VirtualLocationTest,GetTimeTest)61 TEST(VirtualLocationTest, GetTimeTest) 62 { 63 uint64_t ret = VirtualLocation::GetInstance().GetTime(); 64 EXPECT_TRUE(ret > 0); 65 } 66 TEST(VirtualLocationTest,GetAccuracyTest)67 TEST(VirtualLocationTest, GetAccuracyTest) 68 { 69 float ret = VirtualLocation::GetInstance().GetAccuracy(); 70 EXPECT_EQ(ret, VirtualLocation::GetInstance().LOCATION_ACCURACY); 71 } 72 TEST(VirtualLocationTest,IsPositionChangedTest)73 TEST(VirtualLocationTest, IsPositionChangedTest) 74 { 75 SharedData<double>(SharedDataType::LONGITUDE, 0, -180, 180); 76 SharedData<double>(SharedDataType::LATITUDE, 0, -90, 90); 77 78 VirtualLocation::GetInstance().longitudeChecked = 0.0; 79 VirtualLocation::GetInstance().latitudeChecked = 0.0; 80 SharedData<double>::SetData(SharedDataType::LONGITUDE, 0.0); 81 SharedData<double>::SetData(SharedDataType::LATITUDE, 0.0); 82 bool ret1 = VirtualLocation::GetInstance().IsPostionChanged(); 83 EXPECT_FALSE(ret1); 84 85 SharedData<double>::SetData(SharedDataType::LONGITUDE, 50.0); 86 SharedData<double>::SetData(SharedDataType::LATITUDE, 50.0); 87 bool ret2 = VirtualLocation::GetInstance().IsPostionChanged(); 88 EXPECT_TRUE(ret2); 89 } 90 }