• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }