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 <gmock/gmock.h>
17 #include <gtest/gtest.h>
18 
19 #include "system_load.h"
20 #include "dfs_error.h"
21 #include "utils_log.h"
22 #include "res_sched_client.h"
23 
24 namespace OHOS::FileManagement::CloudSync::Test {
25 using namespace testing;
26 using namespace testing::ext;
27 using namespace std;
28 
29 class SytemLoadTest : public testing::Test {
30 public:
31     static void SetUpTestCase(void);
32     static void TearDownTestCase(void);
33     void SetUp();
34     void TearDown();
35     shared_ptr<SystemLoadStatus> SystemLoadStatus_ = nullptr;
36     shared_ptr<SystemLoadListener> SystemLoadListener_ = nullptr;
37 };
38 
SetUpTestCase(void)39 void SytemLoadTest::SetUpTestCase(void)
40 {
41     GTEST_LOG_(INFO) << "SetUpTestCase";
42 }
43 
TearDownTestCase(void)44 void SytemLoadTest::TearDownTestCase(void)
45 {
46     GTEST_LOG_(INFO) << "TearDownTestCase";
47 }
48 
SetUp(void)49 void SytemLoadTest::SetUp(void)
50 {
51     GTEST_LOG_(INFO) << "SetUp";
52     SystemLoadStatus_ = make_shared<SystemLoadStatus>();
53     SystemLoadListener_ = make_shared<SystemLoadListener>();
54 }
55 
TearDown(void)56 void SytemLoadTest::TearDown(void)
57 {
58     GTEST_LOG_(INFO) << "TearDown";
59     SystemLoadStatus_ = nullptr;
60     SystemLoadListener_ = nullptr;
61 }
62 
63 /**
64  * @tc.name: RegisterSystemloadCallbackTest
65  * @tc.desc: Verify the RegisterSystemloadCallback function
66  * @tc.type: FUNC
67  * @tc.require: I6JPKG
68  */
69 HWTEST_F(SytemLoadTest, RegisterSystemloadCallbackTest, TestSize.Level1)
70 {
71     GTEST_LOG_(INFO) << "RegisterSystemloadCallbackTest Start";
72     try {
73         std::shared_ptr<CloudFile::DataSyncManager> dataSyncManager;
74         SystemLoadStatus_->RegisterSystemloadCallback(dataSyncManager);
75     } catch (...) {
76         EXPECT_TRUE(false);
77         GTEST_LOG_(INFO) << "RegisterSystemloadCallbackTest FAILED";
78     }
79     GTEST_LOG_(INFO) << "RegisterSystemloadCallbackTest End";
80 }
81 
82 /**
83  * @tc.name: OnSystemloadLevelTest001
84  * @tc.desc: Verify the OnSystemloadLevel function
85  * @tc.type: FUNC
86  * @tc.require: I6JPKG
87  */
88 HWTEST_F(SytemLoadTest, OnSystemloadLevelTest001, TestSize.Level1)
89 {
90     GTEST_LOG_(INFO) << "OnSystemloadLevelTest001 Start";
91     try {
92         int32_t level = 10;
93         SystemLoadListener_->OnSystemloadLevel(level);
94     } catch (...) {
95         EXPECT_TRUE(false);
96         GTEST_LOG_(INFO) << "OnSystemloadLevelTest001 FAILED";
97     }
98     GTEST_LOG_(INFO) << "OnSystemloadLevelTest001 End";
99 }
100 
101 /**
102  * @tc.name: OnSystemloadLevelTest002
103  * @tc.desc: Verify the OnSystemloadLevel function
104  * @tc.type: FUNC
105  * @tc.require: I6JPKG
106  */
107 HWTEST_F(SytemLoadTest, OnSystemloadLevelTest002, TestSize.Level1)
108 {
109     GTEST_LOG_(INFO) << "OnSystemloadLevelTest002 Start";
110     try {
111         int32_t level = 1;
112         SystemLoadListener_->OnSystemloadLevel(level);
113     } catch (...) {
114         EXPECT_TRUE(false);
115         GTEST_LOG_(INFO) << "OnSystemloadLevelTest002 FAILED";
116     }
117     GTEST_LOG_(INFO) << "OnSystemloadLevelTest002 End";
118 }
119 
120 /**
121  * @tc.name: IsLoadStatusOkayTest001
122  * @tc.desc: Verify the IsLoadStatusOkay function
123  * @tc.type: FUNC
124  * @tc.require: I6JPKG
125  */
126 HWTEST_F(SytemLoadTest, IsLoadStatusOkayTest001, TestSize.Level1)
127 {
128     GTEST_LOG_(INFO) << "IsLoadStatusOkayTest001 Start";
129     try {
130         SystemLoadStatus_->Setload(10);
131         bool ret = SystemLoadStatus_->IsLoadStatusUnderHot();
132         EXPECT_EQ(ret, false);
133     } catch (...) {
134         EXPECT_TRUE(false);
135         GTEST_LOG_(INFO) << "IsLoadStatusOkayTest001 FAILED";
136     }
137     GTEST_LOG_(INFO) << "IsLoadStatusOkayTest001 End";
138 }
139 
140 /**
141  * @tc.name: IsLoadStatusOkayTest002
142  * @tc.desc: Verify the IsLoadStatusOkay function
143  * @tc.type: FUNC
144  * @tc.require: I6JPKG
145  */
146 HWTEST_F(SytemLoadTest, IsLoadStatusOkayTest002, TestSize.Level1)
147 {
148     GTEST_LOG_(INFO) << "IsLoadStatusOkayTest002 Start";
149     try {
150         SystemLoadStatus_->Setload(1);
151         bool ret = SystemLoadStatus_->IsLoadStatusUnderHot();
152         EXPECT_EQ(ret, true);
153     } catch (...) {
154         EXPECT_TRUE(false);
155         GTEST_LOG_(INFO) << "IsLoadStatusOkayTest002 FAILED";
156     }
157     GTEST_LOG_(INFO) << "IsLoadStatusOkayTest002 End";
158 }
159 } // namespace OHOS::FileManagement::CloudSync::Test