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 "usage_event_report_cache_test.h"
17 
18 #include "file_util.h"
19 #include "logger_event.h"
20 #include "plugin_stats_event.h"
21 #include "sys_usage_event.h"
22 #include "usage_event_cacher.h"
23 
24 using namespace std;
25 using namespace testing::ext;
26 
27 namespace OHOS {
28 namespace HiviewDFX {
29 namespace {
30 constexpr char DB_PATH[] = "/data/test/";
31 }
32 
SetUpTestCase(void)33 void UsageEventReportCacheTest::SetUpTestCase(void) {}
34 
TearDownTestCase(void)35 void UsageEventReportCacheTest::TearDownTestCase(void) {}
36 
SetUp(void)37 void UsageEventReportCacheTest::SetUp(void) {}
38 
TearDown(void)39 void UsageEventReportCacheTest::TearDown(void) {}
40 
41 /**
42  * @tc.name: UsageEventReportCacheTest001
43  * @tc.desc: check usage event report cache whether it is passed.
44  * @tc.type: FUNC
45  * @tc.require:
46  */
47 HWTEST_F(UsageEventReportCacheTest, UsageEventReportCacheTest001, TestSize.Level1)
48 {
49     std::vector<std::shared_ptr<LoggerEvent>> events;
50     UsageEventCacher cacher(DB_PATH);
51     cacher.GetPluginStatsEvents(events);
52     EXPECT_TRUE(events.empty());
53     auto pluginStatEvent = std::make_shared<PluginStatsEvent>("EVENT_NAME", HiSysEvent::EventType::STATISTIC);
54     events.emplace_back(pluginStatEvent);
55     cacher.SavePluginStatsEventsToDb(events);
56     events.clear();
57     cacher.GetPluginStatsEvents(events);
58     EXPECT_TRUE(!events.empty());
59     cacher.DeletePluginStatsEventsFromDb();
60     events.clear();
61     cacher.GetPluginStatsEvents(events);
62     EXPECT_TRUE(events.empty());
63 
64     EXPECT_TRUE(cacher.GetSysUsageEvent() == nullptr);
65     auto sysUsageEvent = std::make_shared<SysUsageEvent>("EVENT_NAME", HiSysEvent::EventType::STATISTIC);
66     cacher.SaveSysUsageEventToDb(sysUsageEvent);
67     EXPECT_TRUE(cacher.GetSysUsageEvent() != nullptr);
68     cacher.DeleteSysUsageEventFromDb();
69     EXPECT_TRUE(cacher.GetSysUsageEvent() == nullptr);
70 
71     EXPECT_TRUE(cacher.GetSysUsageEvent(SysUsageDbSpace::LAST_SYS_USAGE_TABLE) == nullptr);
72     cacher.SaveSysUsageEventToDb(sysUsageEvent, SysUsageDbSpace::LAST_SYS_USAGE_TABLE);
73     EXPECT_TRUE(cacher.GetSysUsageEvent(SysUsageDbSpace::LAST_SYS_USAGE_TABLE) != nullptr);
74     cacher.DeleteSysUsageEventFromDb(SysUsageDbSpace::LAST_SYS_USAGE_TABLE);
75     EXPECT_TRUE(cacher.GetSysUsageEvent(SysUsageDbSpace::LAST_SYS_USAGE_TABLE) == nullptr);
76     FileUtil::ForceRemoveDirectory(DB_PATH);
77 }
78 } // HiviewDFX
79 } // OHOS
80