• 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 "runner_runtime/cj_test_runner_object.h"
17 
18 #include "gtest/gtest.h"
19 
20 using namespace testing;
21 using namespace testing::ext;
22 
23 namespace OHOS {
24 namespace RunnerRuntime {
25 class CjTestRunnerObjectTest : public ::testing::Test {
26 public:
CjTestRunnerObjectTest()27     CjTestRunnerObjectTest()
28     {}
~CjTestRunnerObjectTest()29     ~CjTestRunnerObjectTest()
30     {}
31     static void SetUpTestCase(void);
32     static void TearDownTestCase(void);
33     void SetUp() override;
34     void TearDown() override;
35 };
36 
SetUpTestCase()37 void CjTestRunnerObjectTest::SetUpTestCase()
38 {}
39 
TearDownTestCase()40 void CjTestRunnerObjectTest::TearDownTestCase()
41 {}
42 
create(const char * name)43 int64_t create(const char* name)
44 {
45     return 1;
46 }
47 
release(int64_t id)48 void release(int64_t id) {}
49 
onRun(int64_t id)50 void onRun(int64_t id) {}
51 
onPrepare(int64_t id)52 void onPrepare(int64_t id) {}
53 
54 // 模拟 Cangjie 侧的函数注册函数
RegisterCangjieFuncs(CJTestRunnerFuncs * funcs)55 void RegisterCangjieFuncs(CJTestRunnerFuncs* funcs)
56 {
57     funcs->cjTestRunnerCreate = create;
58     funcs->cjTestRunnerRelease = release;
59     funcs->cjTestRunnerOnRun = onRun;
60     funcs->cjTestRunnerOnPrepare = onPrepare;
61 }
62 
SetUp()63 void CjTestRunnerObjectTest::SetUp()
64 {
65 }
66 
TearDown()67 void CjTestRunnerObjectTest::TearDown()
68 {
69 }
70 
71 /**
72  * @tc.name: CjTestRunnerObjectTestLoadModule_Success_001
73  * @tc.desc: CjTestRunnerObjectTest test for LoadModule.
74  * @tc.type: FUNC
75  */
76 HWTEST_F(CjTestRunnerObjectTest, CjTestRunnerObjectTestLoadModule_Success_001, TestSize.Level2)
77 {
78     RegisterCJTestRunnerFuncs(nullptr);
79     RegisterCJTestRunnerFuncs(RegisterCangjieFuncs);
80     std::shared_ptr<CJTestRunnerObject> proxy = CJTestRunnerObject::LoadModule("test_ability");
81     EXPECT_NE(nullptr, proxy);
82     proxy->OnPrepare();
83     proxy->OnRun();
84 
85     proxy.reset();
86 }
87 
88 /**
89  * @tc.name: CjTestRunnerObjectTestLoadModule_Failed_NoRegistration_001
90  * @tc.desc: CjTestRunnerObjectTest test for LoadModule.
91  * @tc.type: FUNC
92  */
93 HWTEST_F(CjTestRunnerObjectTest, CjTestRunnerObjectTestLoadModule_Failed_NoRegistration_001, TestSize.Level2)
94 {
95     auto proxy = CJTestRunnerObject::LoadModule("test_ability");
96     EXPECT_NE(nullptr, proxy);
97 }
98 
99 /**
100  * @tc.name: CjAbilityStageTestOnMemoryLevel_001
101  * @tc.desc: CjTestRunnerObjectTest test for OnMemoryLevel.
102  * @tc.type: FUNC
103  */
104 HWTEST_F(CjTestRunnerObjectTest, CjTestRunnerObjectTestLoadModule_Failed_CangjieCreateFailed_001, TestSize.Level2)
105 {
106     RegisterCJTestRunnerFuncs(RegisterCangjieFuncs);
107     auto proxy = CJTestRunnerObject::LoadModule("test_ability");
108     EXPECT_NE(nullptr, proxy);
109 }
110 
111 /**
112  * @tc.name: CjTestRunnerObjectTestOnRun_Success_001
113  * @tc.desc: CjTestRunnerObjectTest test for OnRun.
114  * @tc.type: FUNC
115  */
116 HWTEST_F(CjTestRunnerObjectTest, CjTestRunnerObjectTestOnRun_Success_001, TestSize.Level2)
117 {
118     RegisterCJTestRunnerFuncs(RegisterCangjieFuncs);
119     auto proxy = CJTestRunnerObject::LoadModule("test_ability");
120     proxy->OnRun();
121     proxy.reset();
122     EXPECT_EQ(nullptr, proxy);
123 }
124 
125 /**
126  * @tc.name: CjTestRunnerObjectTestOnRun_Failed_NoRegistration_001
127  * @tc.desc: CjTestRunnerObjectTest test for OnRun.
128  * @tc.type: FUNC
129  */
130 HWTEST_F(CjTestRunnerObjectTest, CjTestRunnerObjectTestOnRun_Failed_NoRegistration_001, TestSize.Level2)
131 {
132     auto proxy = CJTestRunnerObject::LoadModule("test_ability");
133     proxy->OnRun();
134     EXPECT_NE(nullptr, proxy);
135 }
136 
137 /**
138  * @tc.name: CjTestRunnerObjectTestOnPrepare_Success_001
139  * @tc.desc: CjTestRunnerObjectTest test for OnPrepare.
140  * @tc.type: FUNC
141  */
142 HWTEST_F(CjTestRunnerObjectTest, CjTestRunnerObjectTestOnPrepare_Success_001, TestSize.Level2)
143 {
144     RegisterCJTestRunnerFuncs(RegisterCangjieFuncs);
145     auto proxy = CJTestRunnerObject::LoadModule("test_ability");
146     proxy->OnPrepare();
147     EXPECT_NE(nullptr, proxy);
148 }
149 
150 /**
151  * @tc.name: CjTestRunnerObjectTestOnPrepare_Failed_NoRegistration_001
152  * @tc.desc: CjTestRunnerObjectTest test for OnPrepare.
153  * @tc.type: FUNC
154  */
155 HWTEST_F(CjTestRunnerObjectTest, CjTestRunnerObjectTestOnPrepare_Failed_NoRegistration_001, TestSize.Level2)
156 {
157     auto proxy = CJTestRunnerObject::LoadModule("test_ability");
158     proxy->OnPrepare();
159     EXPECT_NE(nullptr, proxy);
160 }
161 
162 /**
163  * @tc.name: CjTestRunnerObjectTestDestructor_Success_001
164  * @tc.desc: CjTestRunnerObjectTest test for reset.
165  * @tc.type: FUNC
166  */
167 HWTEST_F(CjTestRunnerObjectTest, CjTestRunnerObjectTestDestructor_Success_001, TestSize.Level2)
168 {
169     RegisterCJTestRunnerFuncs(RegisterCangjieFuncs);
170     auto proxy = CJTestRunnerObject::LoadModule("test_ability");
171     proxy.reset();
172     EXPECT_EQ(nullptr, proxy);
173 }
174 } // namespace RunnerRuntime
175 } // namespace OHOS
176