1 /*
2  * Copyright (c) 2022 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 "dms_token_callback_test.h"
17 
18 #include "distributed_sched_test_util.h"
19 #include "dms_token_callback.h"
20 #include "dtbschedmgr_log.h"
21 #include "test_log.h"
22 
23 using namespace testing;
24 using namespace testing::ext;
25 
26 namespace OHOS {
27 namespace DistributedSchedule {
28 namespace {
29 const char* DISTSCHED_PROCESS_NAME = "distributedsched";
30 const char* FOUNDATION_PROCESS_NAME = "foundation";
31 const char* INVALID_PROCESS_NAME = "invalid_process";
32 }
33 
SetUpTestCase()34 void DmsTokenCallbackTest::SetUpTestCase()
35 {
36     DTEST_LOG << "DmsTokenCallbackTest::SetUpTestCase" << std::endl;
37 }
38 
TearDownTestCase()39 void DmsTokenCallbackTest::TearDownTestCase()
40 {
41     DTEST_LOG << "DmsTokenCallbackTest::TearDownTestCase" << std::endl;
42 }
43 
TearDown()44 void DmsTokenCallbackTest::TearDown()
45 {
46     DTEST_LOG << "DmsTokenCallbackTest::TearDown" << std::endl;
47 }
48 
SetUp()49 void DmsTokenCallbackTest::SetUp()
50 {
51     DTEST_LOG << "DmsTokenCallbackTest::SetUp" << std::endl;
52     dmsTokenCallback_ = new DmsTokenCallback();
53     DistributedSchedUtil::MockProcess(FOUNDATION_PROCESS_NAME);
54 }
55 
56 /**
57  * @tc.name: SendResultTest_001
58  * @tc.desc: call SendResult from distributedsched
59  * @tc.type: FUNC
60  * @tc.require: I5RWIV
61  */
62 HWTEST_F(DmsTokenCallbackTest, SendResultTest_001, TestSize.Level3)
63 {
64     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_001 begin" << std::endl;
65     ASSERT_NE(dmsTokenCallback_, nullptr);
66     AAFwk::Want want;
67     int32_t callerUid = 0;
68     int32_t requestCode = 0;
69     uint32_t accessToken = 0;
70     int32_t resultCode = 0;
71     DistributedSchedUtil::MockProcess(DISTSCHED_PROCESS_NAME);
72     int32_t result = dmsTokenCallback_->SendResult(want, callerUid, requestCode, accessToken, resultCode);
73     EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
74     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_001 end" << std::endl;
75 }
76 
77 /**
78  * @tc.name: SendResultTest_002
79  * @tc.desc: call SendResult from foundation
80  * @tc.type: FUNC
81  * @tc.require: I5RWIV
82  */
83 HWTEST_F(DmsTokenCallbackTest, SendResultTest_002, TestSize.Level3)
84 {
85     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_002 begin" << std::endl;
86     ASSERT_NE(dmsTokenCallback_, nullptr);
87     AAFwk::Want want;
88     int32_t callerUid = 0;
89     int32_t requestCode = 0;
90     uint32_t accessToken = 0;
91     int32_t resultCode = 0;
92     int32_t result = dmsTokenCallback_->SendResult(want, callerUid, requestCode, accessToken, resultCode);
93     EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
94     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_002 end" << std::endl;
95 }
96 
97 /**
98  * @tc.name: SendResultTest_003
99  * @tc.desc: call SendResult with local device id
100  * @tc.type: FUNC
101  * @tc.require: I5WKCK
102  */
103 HWTEST_F(DmsTokenCallbackTest, SendResultTest_003, TestSize.Level3)
104 {
105     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_003 begin" << std::endl;
106     ASSERT_NE(dmsTokenCallback_, nullptr);
107     AAFwk::Want want;
108     string localDeviceId;
109     dmsTokenCallback_->GetLocalDeviceId(localDeviceId);
110     want.SetParam("dmsSrcNetworkId", localDeviceId);
111     int32_t callerUid = 0;
112     int32_t requestCode = 0;
113     uint32_t accessToken = 0;
114     int32_t resultCode = 0;
115     int32_t result = dmsTokenCallback_->SendResult(want, callerUid, requestCode, accessToken, resultCode);
116     EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
117     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_003 end" << std::endl;
118 }
119 
120 /**
121  * @tc.name: SendResultTest_004
122  * @tc.desc: call SendResult from invalid process
123  * @tc.type: FUNC
124  * @tc.require: I64FU7
125  */
126 HWTEST_F(DmsTokenCallbackTest, SendResultTest_004, TestSize.Level3)
127 {
128     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_004 begin" << std::endl;
129     ASSERT_NE(dmsTokenCallback_, nullptr);
130     AAFwk::Want want;
131     int32_t callerUid = 0;
132     int32_t requestCode = 0;
133     uint32_t accessToken = 0;
134     int32_t resultCode = 0;
135     DistributedSchedUtil::MockProcess(INVALID_PROCESS_NAME);
136     int32_t result = dmsTokenCallback_->SendResult(want, callerUid, requestCode, accessToken, resultCode);
137     EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
138     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_004 end" << std::endl;
139 }
140 
141 /**
142  * @tc.name: SendResultTest_005
143  * @tc.desc: call SendResult with remote device id
144  * @tc.type: FUNC
145  * @tc.require: I64FU7
146  */
147 HWTEST_F(DmsTokenCallbackTest, SendResultTest_005, TestSize.Level3)
148 {
149     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_005 begin" << std::endl;
150     ASSERT_NE(dmsTokenCallback_, nullptr);
151     AAFwk::Want want;
152     string remoteDeviceId = "remoteDeviceId";
153     want.SetParam("dmsSrcNetworkId", remoteDeviceId);
154     int32_t callerUid = 0;
155     int32_t requestCode = 0;
156     uint32_t accessToken = 0;
157     int32_t resultCode = 0;
158     int32_t result = dmsTokenCallback_->SendResult(want, callerUid, requestCode, accessToken, resultCode);
159     EXPECT_EQ(result, INVALID_PARAMETERS_ERR);
160     DTEST_LOG << "DmsTokenCallbackTest SendResultTest_005 end" << std::endl;
161 }
162 
163 /**
164  * @tc.name: CheckDeviceIdTest_001
165  * @tc.desc: call CheckDeviceId with empty deviceId
166  * @tc.type: FUNC
167  * @tc.require: I5RWIV
168  */
169 HWTEST_F(DmsTokenCallbackTest, CheckDeviceIdTest_001, TestSize.Level3)
170 {
171     DTEST_LOG << "DmsTokenCallbackTest CheckDeviceIdTest_001 begin" << std::endl;
172     ASSERT_NE(dmsTokenCallback_, nullptr);
173     std::string localDeviceId;
174     std::string remoteDeviceId;
175     bool result = dmsTokenCallback_->CheckDeviceId(localDeviceId, remoteDeviceId);
176     EXPECT_EQ(result, false);
177     DTEST_LOG << "DmsTokenCallbackTest CheckDeviceIdTest_001 end" << std::endl;
178 }
179 
180 /**
181  * @tc.name: CheckDeviceIdTest_002
182  * @tc.desc: call CheckDeviceId with same deviceId
183  * @tc.type: FUNC
184  * @tc.require: I5RWIV
185  */
186 HWTEST_F(DmsTokenCallbackTest, CheckDeviceIdTest_002, TestSize.Level3)
187 {
188     DTEST_LOG << "DmsTokenCallbackTest CheckDeviceIdTest_002 begin" << std::endl;
189     ASSERT_NE(dmsTokenCallback_, nullptr);
190     std::string localDeviceId = "1";
191     std::string remoteDeviceId = "1";
192     bool result = dmsTokenCallback_->CheckDeviceId(localDeviceId, remoteDeviceId);
193     EXPECT_EQ(result, false);
194     DTEST_LOG << "DmsTokenCallbackTest CheckDeviceIdTest_002 end" << std::endl;
195 }
196 
197 /**
198  * @tc.name: CheckDeviceIdTest_003
199  * @tc.desc: call CheckDeviceId with different deviceId
200  * @tc.type: FUNC
201  * @tc.require: I5RWIV
202  */
203 HWTEST_F(DmsTokenCallbackTest, CheckDeviceIdTest_003, TestSize.Level3)
204 {
205     DTEST_LOG << "DmsTokenCallbackTest CheckDeviceIdTest_003 begin" << std::endl;
206     ASSERT_NE(dmsTokenCallback_, nullptr);
207     std::string localDeviceId = "1";
208     std::string remoteDeviceId = "2";
209     bool result = dmsTokenCallback_->CheckDeviceId(localDeviceId, remoteDeviceId);
210     EXPECT_EQ(result, true);
211     DTEST_LOG << "DmsTokenCallbackTest CheckDeviceIdTest_003 end" << std::endl;
212 }
213 
214 /**
215  * @tc.name: GetRemoteDmsTest_001
216  * @tc.desc: call GetRemoteDms with empty deviceId
217  * @tc.type: FUNC
218  * @tc.require: I5RWIV
219  */
220 HWTEST_F(DmsTokenCallbackTest, GetRemoteDmsTest_001, TestSize.Level3)
221 {
222     DTEST_LOG << "DmsTokenCallbackTest GetRemoteDmsTest_001 begin" << std::endl;
223     ASSERT_NE(dmsTokenCallback_, nullptr);
224     std::string remoteDeviceId;
225     sptr<IDistributedSched> result = dmsTokenCallback_->GetRemoteDms(remoteDeviceId);
226     EXPECT_EQ(result, nullptr);
227     DTEST_LOG << "DmsTokenCallbackTest GetRemoteDmsTest_001 end" << std::endl;
228 }
229 
230 /**
231  * @tc.name: GetRemoteDmsTest_002
232  * @tc.desc: call GetRemoteDms with invalid deviceId
233  * @tc.type: FUNC
234  * @tc.require: I5RWIV
235  */
236 HWTEST_F(DmsTokenCallbackTest, GetRemoteDmsTest_002, TestSize.Level3)
237 {
238     DTEST_LOG << "DmsTokenCallbackTest GetRemoteDmsTest_002 begin" << std::endl;
239     ASSERT_NE(dmsTokenCallback_, nullptr);
240     std::string remoteDeviceId = "1";
241     sptr<IDistributedSched> result = dmsTokenCallback_->GetRemoteDms(remoteDeviceId);
242     EXPECT_EQ(result, nullptr);
243     DTEST_LOG << "DmsTokenCallbackTest GetRemoteDmsTest_002 end" << std::endl;
244 }
245 }
246 }