1 /*
2  * Copyright (C) 2021-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 "deviceauth_standard_test.h"
17 #include <cinttypes>
18 #include <unistd.h>
19 #include <gtest/gtest.h>
20 #include "account_module_defines.h"
21 #include "alg_loader.h"
22 #include "common_defs.h"
23 #include "device_auth.h"
24 #include "device_auth_defines.h"
25 #include "device_auth_ext.h"
26 #include "hc_dev_info_mock.h"
27 #include "json_utils_mock.h"
28 #include "json_utils.h"
29 #include "protocol_task_main_mock.h"
30 #include "securec.h"
31 
32 using namespace std;
33 using namespace testing::ext;
34 
35 namespace {
36 #define TEST_REQ_ID 123
37 #define TEST_REQ_ID2 321
38 #define TEST_REQ_ID3 132
39 #define TEST_REQ_ID4 213
40 #define TEST_APP_ID "TestAppId"
41 #define TEST_APP_ID2 "TestAppId2"
42 #define TEST_GROUP_NAME "TestGroup"
43 #define TEST_AUTH_ID "TestAuthId"
44 #define TEST_AUTH_ID2 "TestAuthId2"
45 #define TEST_AUTH_ID3 "TestAuthId3"
46 #define TEST_UDID "TestUdid"
47 #define TEST_UDID2 "TestUdid2"
48 #define TEST_UDID_CLIENT "5420459D93FE773F9945FD64277FBA2CAB8FB996DDC1D0B97676FBB1242B3930"
49 #define TEST_UDID_SERVER "52E2706717D5C39D736E134CC1E3BE1BAA2AA52DB7C76A37C749558BD2E6492C"
50 #define TEST_USER_ID_AUTH "4269DC28B639681698809A67EDAD08E39F207900038F91FEF95DD042FE2874E4"
51 #define TEST_USER_ID "1234ABCD"
52 #define TEST_USER_ID2 "DCBA4321"
53 #define TEST_GROUP_ID "E2EE6F830B176B2C96A9F99BFAE2A61F5D1490B9F4A090E9D8C2874C230C7C21"
54 #define TEST_GROUP_ID2 "F2AA208B1E010542B20A34B03B4B6289EA7C7F6DFE97DA2E370348B826682D3D"
55 #define TEST_GROUP_ID3 "1234ABCD"
56 #define TEST_GROUP_ID4 "6B7B805962B8EB8275D73128BFDAA7ECD755A2EC304E36543941874A277FA75F"
57 #define TEST_AUTH_CODE "37364761534f454d33567a73424e794f33573330507069434b31676f7254706b"
58 #define TEST_AUTH_CODE2 "2f7562744654535564586e665467546b322b4b506b65626373466f48766a4335"
59 #define TEST_AUTH_CODE3 "1234567812345678123456781234567812345678123456781234567812345678"
60 #define TEST_AUTH_TOKEN3 "10F9F0576E61730193D2052B7F771887124A68F1607EFCF7796C1491F834CD92"
61 #define TEST_QUERY_PARAMS "bac"
62 #define TEST_PIN_CODE "123456"
63 #define TEST_GROUP_DATA_PATH "/data/service/el1/public/deviceauthMock"
64 #define TEST_HKS_MAIN_DATA_PATH "/data/service/el1/public/huks_service/tmp/+0+0+0+0"
65 #define TEST_DEV_AUTH_TEMP_KEY_PAIR_LEN 32
66 #define TEST_DEV_AUTH_SLEEP_TIME 50000
67 #define TEST_DEV_AUTH_SLEEP_TIME2 60000
68 static const int32_t TEST_AUTH_OS_ACCOUNT_ID = 100;
69 static const int TEST_DEV_AUTH_BUFFER_SIZE = 128;
70 static const char *CREATE_PARAMS = "{\"groupName\":\"TestGroup\",\"deviceId\":\"TestAuthId\",\"groupType\":256,\"group"
71     "Visibility\":-1,\"userType\":0,\"expireTime\":-1}";
72 static const char *CREATE_PARAMS2 = "{\"groupName\":\"TestPrivateGroup\",\"deviceId\":\"TestAuth"
73     "Id\",\"groupType\":256,\"groupVisibility\":0,\"userType\":0,\"expireTime\":-1}";
74 static const char *CREATE_PARAMS3 = "{\"groupType\":1282,\"userId\":\"1234ABCD\",\"peerUserId\":\"DCBA4321\"}";
75 static const char *GET_REG_INFO_PARAMS =
76     "{\"version\":\"1.0.0\",\"deviceId\":\"TestAuthId\",\"userId\":\"1234ABCD\"}";
77 
78 enum AsyncStatus {
79     ASYNC_STATUS_WAITING = 0,
80     ASYNC_STATUS_TRANSMIT = 1,
81     ASYNC_STATUS_FINISH = 2,
82     ASYNC_STATUS_ERROR = 3
83 };
84 
85 static AsyncStatus volatile g_asyncStatus;
86 static uint32_t g_transmitDataMaxLen = 2048;
87 static uint8_t g_transmitData[2048] = { 0 };
88 static uint32_t g_transmitDataLen = 0;
89 
OnTransmit(int64_t requestId,const uint8_t * data,uint32_t dataLen)90 static bool OnTransmit(int64_t requestId, const uint8_t *data, uint32_t dataLen)
91 {
92     if (memcpy_s(g_transmitData, g_transmitDataMaxLen, data, dataLen) != EOK) {
93         return false;
94     }
95     g_transmitDataLen = dataLen;
96     g_asyncStatus = ASYNC_STATUS_TRANSMIT;
97     return true;
98 }
99 
OnSessionKeyReturned(int64_t requestId,const uint8_t * sessionKey,uint32_t sessionKeyLen)100 static void OnSessionKeyReturned(int64_t requestId, const uint8_t *sessionKey, uint32_t sessionKeyLen)
101 {
102     (void)requestId;
103     (void)sessionKey;
104     (void)sessionKeyLen;
105     return;
106 }
107 
OnFinish(int64_t requestId,int operationCode,const char * authReturn)108 static void OnFinish(int64_t requestId, int operationCode, const char *authReturn)
109 {
110     g_asyncStatus = ASYNC_STATUS_FINISH;
111 }
112 
OnError(int64_t requestId,int operationCode,int errorCode,const char * errorReturn)113 static void OnError(int64_t requestId, int operationCode, int errorCode, const char *errorReturn)
114 {
115     g_asyncStatus = ASYNC_STATUS_ERROR;
116 }
117 
OnBindRequest(int64_t requestId,int operationCode,const char * reqParam)118 static char *OnBindRequest(int64_t requestId, int operationCode, const char* reqParam)
119 {
120     CJson *json = CreateJson();
121     AddIntToJson(json, FIELD_CONFIRMATION, REQUEST_ACCEPTED);
122     AddIntToJson(json, FIELD_OS_ACCOUNT_ID, TEST_AUTH_OS_ACCOUNT_ID);
123     AddStringToJson(json, FIELD_PIN_CODE, TEST_PIN_CODE);
124     AddStringToJson(json, FIELD_DEVICE_ID, TEST_AUTH_ID2);
125     char *returnDataStr = PackJsonToString(json);
126     FreeJson(json);
127     return returnDataStr;
128 }
129 
130 static DeviceAuthCallback g_gmCallback = {
131     .onTransmit = OnTransmit,
132     .onSessionKeyReturned = OnSessionKeyReturned,
133     .onFinish = OnFinish,
134     .onError = OnError,
135     .onRequest = OnBindRequest
136 };
137 
RemoveDir(const char * path)138 static void RemoveDir(const char *path)
139 {
140     char strBuf[TEST_DEV_AUTH_BUFFER_SIZE] = {0};
141     if (path == nullptr) {
142         return;
143     }
144     if (sprintf_s(strBuf, sizeof(strBuf) - 1, "rm -rf %s", path) < 0) {
145         return;
146     }
147     system(strBuf);
148 }
149 
DeleteDatabase()150 static void DeleteDatabase()
151 {
152     RemoveDir(TEST_GROUP_DATA_PATH);
153     RemoveDir(TEST_HKS_MAIN_DATA_PATH);
154 }
155 
GenerateTempKeyPair(Uint8Buff * keyAlias)156 static bool GenerateTempKeyPair(Uint8Buff *keyAlias)
157 {
158     int ret = GetLoaderInstance()->checkKeyExist(keyAlias, false, DEFAULT_OS_ACCOUNT);
159     if (ret != HC_SUCCESS) {
160         printf("Key pair not exist, start to generate\n");
161         int32_t authId = 0;
162         Uint8Buff authIdBuff = { reinterpret_cast<uint8_t *>(&authId), sizeof(int32_t)};
163         ExtraInfo extInfo = {authIdBuff, -1, -1};
164         KeyParams keyParams = { { keyAlias->val, keyAlias->length, true }, false, DEFAULT_OS_ACCOUNT };
165         ret = GetLoaderInstance()->generateKeyPairWithStorage(&keyParams, TEST_DEV_AUTH_TEMP_KEY_PAIR_LEN, P256,
166             KEY_PURPOSE_SIGN_VERIFY, &extInfo);
167     } else {
168         printf("Server key pair already exists\n");
169     }
170 
171     if (ret != HC_SUCCESS) {
172         printf("Generate key pair failed\n");
173         return false;
174     } else {
175         printf("Generate key pair for server success\n");
176     }
177     return true;
178 }
179 
GetAsyCredentialJson(string registerInfo)180 static CJson *GetAsyCredentialJson(string registerInfo)
181 {
182     uint8_t keyAliasValue[] = "TestServerKeyPair";
183     int32_t keyAliasLen = 18;
184     Uint8Buff keyAlias = {
185         .val = keyAliasValue,
186         .length = keyAliasLen
187     };
188     if (!GenerateTempKeyPair(&keyAlias)) {
189         return nullptr;
190     }
191     uint8_t *serverPkVal = reinterpret_cast<uint8_t *>(HcMalloc(SERVER_PK_SIZE, 0));
192     Uint8Buff serverPk = {
193         .val = serverPkVal,
194         .length = SERVER_PK_SIZE
195     };
196 
197     KeyParams keyAliasParams = { { keyAlias.val, keyAlias.length, true }, false, DEFAULT_OS_ACCOUNT };
198     int32_t ret = GetLoaderInstance()->exportPublicKey(&keyAliasParams, &serverPk);
199     if (ret != HC_SUCCESS) {
200         printf("export PublicKey failed\n");
201         HcFree(serverPkVal);
202         return nullptr;
203     }
204 
205     Uint8Buff messageBuff = {
206         .val = reinterpret_cast<uint8_t *>(const_cast<char *>(registerInfo.c_str())),
207         .length = registerInfo.length() + 1
208     };
209     uint8_t *signatureValue = reinterpret_cast<uint8_t *>(HcMalloc(SIGNATURE_SIZE, 0));
210     Uint8Buff signature = {
211         .val = signatureValue,
212         .length = SIGNATURE_SIZE
213     };
214     ret = GetLoaderInstance()->sign(&keyAliasParams, &messageBuff, P256, &signature);
215     if (ret != HC_SUCCESS) {
216         printf("Sign pkInfo failed.\n");
217         HcFree(serverPkVal);
218         HcFree(signatureValue);
219         return nullptr;
220     }
221 
222     CJson *pkInfoJson = CreateJsonFromString(registerInfo.c_str());
223     CJson *credentialJson = CreateJson();
224     (void)AddIntToJson(credentialJson, FIELD_CREDENTIAL_TYPE, ASYMMETRIC_CRED);
225     (void)AddByteToJson(credentialJson, FIELD_SERVER_PK, serverPkVal, serverPk.length);
226     (void)AddByteToJson(credentialJson, FIELD_PK_INFO_SIGNATURE, signatureValue, signature.length);
227     (void)AddObjToJson(credentialJson, FIELD_PK_INFO, pkInfoJson);
228     FreeJson(pkInfoJson);
229     return credentialJson;
230 }
231 
CreateDemoGroup(int32_t osAccountId,int64_t reqId,const char * appId,const char * createParams)232 static void CreateDemoGroup(int32_t osAccountId, int64_t reqId, const char *appId, const char *createParams)
233 {
234     g_asyncStatus = ASYNC_STATUS_WAITING;
235     const DeviceGroupManager *gm = GetGmInstance();
236     int32_t ret = gm->createGroup(osAccountId, reqId, appId, createParams);
237     if (ret != HC_SUCCESS) {
238         g_asyncStatus = ASYNC_STATUS_ERROR;
239         return;
240     }
241     while (g_asyncStatus == ASYNC_STATUS_WAITING) {
242         usleep(TEST_DEV_AUTH_SLEEP_TIME);
243     }
244     usleep(TEST_DEV_AUTH_SLEEP_TIME);
245 }
246 
CreateDemoIdenticalAccountGroup()247 static void CreateDemoIdenticalAccountGroup()
248 {
249     g_asyncStatus = ASYNC_STATUS_WAITING;
250     const DeviceGroupManager *gm = GetGmInstance();
251     ASSERT_NE(gm, nullptr);
252     char *returnData = nullptr;
253     int32_t ret = gm->getRegisterInfo(GET_REG_INFO_PARAMS, &returnData);
254     ASSERT_EQ(ret, HC_SUCCESS);
255     ASSERT_NE(returnData, nullptr);
256     string registerInfo(returnData);
257 
258     CJson *credJson = GetAsyCredentialJson(registerInfo);
259     ASSERT_NE(credJson, nullptr);
260     CJson *json = CreateJson();
261     AddIntToJson(json, FIELD_GROUP_TYPE, IDENTICAL_ACCOUNT_GROUP);
262     AddStringToJson(json, FIELD_USER_ID, TEST_USER_ID);
263     AddObjToJson(json, FIELD_CREDENTIAL, credJson);
264     char *jsonStr = PackJsonToString(json);
265     FreeJson(credJson);
266     FreeJson(json);
267     gm->destroyInfo(&returnData);
268     ASSERT_NE(jsonStr, nullptr);
269     ret = gm->createGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, jsonStr);
270     FreeJsonString(jsonStr);
271     ASSERT_EQ(ret, HC_SUCCESS);
272     while (g_asyncStatus == ASYNC_STATUS_WAITING) {
273         usleep(TEST_DEV_AUTH_SLEEP_TIME);
274     }
275 }
276 
CreateDemoAcrossAccountGroup(int32_t osAccountId,int64_t reqId,const char * appId,const char * createParams)277 static void CreateDemoAcrossAccountGroup(int32_t osAccountId, int64_t reqId, const char *appId,
278     const char *createParams)
279 {
280     g_asyncStatus = ASYNC_STATUS_WAITING;
281     const DeviceGroupManager *gm = GetGmInstance();
282     ASSERT_NE(gm, nullptr);
283     int32_t ret = gm->createGroup(osAccountId, reqId, appId, createParams);
284     ASSERT_EQ(ret, HC_SUCCESS);
285     while (g_asyncStatus == ASYNC_STATUS_WAITING) {
286         usleep(TEST_DEV_AUTH_SLEEP_TIME);
287     }
288 }
289 
290 class InitDeviceAuthServiceTest : public testing::Test {
291 public:
292     static void SetUpTestCase();
293     static void TearDownTestCase();
294     void SetUp();
295     void TearDown();
296 };
297 
SetUpTestCase()298 void InitDeviceAuthServiceTest::SetUpTestCase() {}
TearDownTestCase()299 void InitDeviceAuthServiceTest::TearDownTestCase() {}
SetUp()300 void InitDeviceAuthServiceTest::SetUp() {}
TearDown()301 void InitDeviceAuthServiceTest::TearDown() {}
302 
303 HWTEST_F(InitDeviceAuthServiceTest, InitDeviceAuthServiceTest001, TestSize.Level0)
304 {
305     int32_t ret = InitDeviceAuthService();
306     EXPECT_EQ(ret, HC_SUCCESS);
307 }
308 
309 class DestroyDeviceAuthServiceTest : public testing::Test {
310 public:
311     static void SetUpTestCase();
312     static void TearDownTestCase();
313     void SetUp();
314     void TearDown();
315 };
316 
SetUpTestCase()317 void DestroyDeviceAuthServiceTest::SetUpTestCase() {}
TearDownTestCase()318 void DestroyDeviceAuthServiceTest::TearDownTestCase() {}
SetUp()319 void DestroyDeviceAuthServiceTest::SetUp() {}
TearDown()320 void DestroyDeviceAuthServiceTest::TearDown() {}
321 
322 HWTEST_F(DestroyDeviceAuthServiceTest, DestroyDeviceAuthServiceTest001, TestSize.Level0)
323 {
324     int32_t ret = InitDeviceAuthService();
325     EXPECT_EQ(ret, HC_SUCCESS);
326     DestroyDeviceAuthService();
327 }
328 
329 class GetGmInstanceTest : public testing::Test {
330 public:
331     static void SetUpTestCase();
332     static void TearDownTestCase();
333     void SetUp();
334     void TearDown();
335 };
336 
SetUpTestCase()337 void GetGmInstanceTest::SetUpTestCase() {}
TearDownTestCase()338 void GetGmInstanceTest::TearDownTestCase() {}
339 
SetUp()340 void GetGmInstanceTest::SetUp()
341 {
342     int ret = InitDeviceAuthService();
343     EXPECT_EQ(ret, HC_SUCCESS);
344 }
345 
TearDown()346 void GetGmInstanceTest::TearDown()
347 {
348     DestroyDeviceAuthService();
349 }
350 
351 HWTEST_F(GetGmInstanceTest, GetGmInstanceTest001, TestSize.Level0)
352 {
353     const DeviceGroupManager *gm = GetGmInstance();
354     EXPECT_NE(gm, nullptr);
355 }
356 
357 class GetGaInstanceTest : public testing::Test {
358 public:
359     static void SetUpTestCase();
360     static void TearDownTestCase();
361     void SetUp();
362     void TearDown();
363 };
364 
SetUpTestCase()365 void GetGaInstanceTest::SetUpTestCase() {}
TearDownTestCase()366 void GetGaInstanceTest::TearDownTestCase() {}
367 
SetUp()368 void GetGaInstanceTest::SetUp()
369 {
370     int ret = InitDeviceAuthService();
371     EXPECT_EQ(ret, HC_SUCCESS);
372 }
373 
TearDown()374 void GetGaInstanceTest::TearDown()
375 {
376     DestroyDeviceAuthService();
377 }
378 
379 HWTEST_F(GetGaInstanceTest, GetGaInstanceTest001, TestSize.Level0)
380 {
381     const GroupAuthManager *ga = GetGaInstance();
382     EXPECT_NE(ga, nullptr);
383 }
384 
385 class GmRegCallbackTest : public testing::Test {
386 public:
387     static void SetUpTestCase();
388     static void TearDownTestCase();
389     void SetUp();
390     void TearDown();
391 };
392 
SetUpTestCase()393 void GmRegCallbackTest::SetUpTestCase() {}
TearDownTestCase()394 void GmRegCallbackTest::TearDownTestCase() {}
395 
SetUp()396 void GmRegCallbackTest::SetUp()
397 {
398     int ret = InitDeviceAuthService();
399     EXPECT_EQ(ret, HC_SUCCESS);
400 }
401 
TearDown()402 void GmRegCallbackTest::TearDown()
403 {
404     DestroyDeviceAuthService();
405 }
406 
407 HWTEST_F(GmRegCallbackTest, GmRegCallbackTest001, TestSize.Level0)
408 {
409     const DeviceGroupManager *gm = GetGmInstance();
410     ASSERT_NE(gm, nullptr);
411     DeviceAuthCallback callback;
412     int32_t ret = gm->regCallback(TEST_APP_ID, &callback);
413     ASSERT_EQ(ret, HC_SUCCESS);
414 }
415 
416 HWTEST_F(GmRegCallbackTest, GmRegCallbackTest002, TestSize.Level0)
417 {
418     const DeviceGroupManager *gm = GetGmInstance();
419     ASSERT_NE(gm, nullptr);
420     DeviceAuthCallback callback;
421     int32_t ret = gm->regCallback(TEST_APP_ID, &callback);
422     ASSERT_EQ(ret, HC_SUCCESS);
423     DeviceAuthCallback callback2;
424     ret = gm->regCallback(TEST_APP_ID, &callback2);
425     ASSERT_EQ(ret, HC_SUCCESS);
426 }
427 
428 HWTEST_F(GmRegCallbackTest, GmRegCallbackTest003, TestSize.Level0)
429 {
430     const DeviceGroupManager *gm = GetGmInstance();
431     ASSERT_NE(gm, nullptr);
432     DeviceAuthCallback callback;
433     int32_t ret = gm->regCallback(nullptr, &callback);
434     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
435 }
436 
437 HWTEST_F(GmRegCallbackTest, GmRegCallbackTest004, TestSize.Level0)
438 {
439     const DeviceGroupManager *gm = GetGmInstance();
440     ASSERT_NE(gm, nullptr);
441     int32_t ret = gm->regCallback(TEST_APP_ID, nullptr);
442     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
443 }
444 
445 class GmUnRegCallbackTest : public testing::Test {
446 public:
447     static void SetUpTestCase();
448     static void TearDownTestCase();
449     void SetUp();
450     void TearDown();
451 };
452 
SetUpTestCase()453 void GmUnRegCallbackTest::SetUpTestCase() {}
TearDownTestCase()454 void GmUnRegCallbackTest::TearDownTestCase() {}
455 
SetUp()456 void GmUnRegCallbackTest::SetUp()
457 {
458     int ret = InitDeviceAuthService();
459     EXPECT_EQ(ret, HC_SUCCESS);
460 }
461 
TearDown()462 void GmUnRegCallbackTest::TearDown()
463 {
464     DestroyDeviceAuthService();
465 }
466 
467 HWTEST_F(GmUnRegCallbackTest, GmUnRegCallbackTest001, TestSize.Level0)
468 {
469     const DeviceGroupManager *gm = GetGmInstance();
470     ASSERT_NE(gm, nullptr);
471     DeviceAuthCallback callback;
472     int32_t ret = gm->regCallback(TEST_APP_ID, &callback);
473     ASSERT_EQ(ret, HC_SUCCESS);
474     ret = gm->unRegCallback(TEST_APP_ID);
475     ASSERT_EQ(ret, HC_SUCCESS);
476 }
477 
478 HWTEST_F(GmUnRegCallbackTest, GmUnRegCallbackTest002, TestSize.Level0)
479 {
480     const DeviceGroupManager *gm = GetGmInstance();
481     ASSERT_NE(gm, nullptr);
482     int32_t ret = gm->unRegCallback(TEST_APP_ID);
483     ASSERT_EQ(ret, HC_SUCCESS);
484 }
485 
486 HWTEST_F(GmUnRegCallbackTest, GmUnRegCallbackTest003, TestSize.Level0)
487 {
488     const DeviceGroupManager *gm = GetGmInstance();
489     ASSERT_NE(gm, nullptr);
490     int32_t ret = gm->unRegCallback(nullptr);
491     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
492 }
493 
494 class GmRegDataChangeListenerTest : public testing::Test {
495 public:
496     static void SetUpTestCase();
497     static void TearDownTestCase();
498     void SetUp();
499     void TearDown();
500 };
501 
SetUpTestCase()502 void GmRegDataChangeListenerTest::SetUpTestCase() {}
TearDownTestCase()503 void GmRegDataChangeListenerTest::TearDownTestCase() {}
504 
SetUp()505 void GmRegDataChangeListenerTest::SetUp()
506 {
507     int ret = InitDeviceAuthService();
508     EXPECT_EQ(ret, HC_SUCCESS);
509 }
510 
TearDown()511 void GmRegDataChangeListenerTest::TearDown()
512 {
513     DestroyDeviceAuthService();
514 }
515 
516 HWTEST_F(GmRegDataChangeListenerTest, GmRegDataChangeListenerTest001, TestSize.Level0)
517 {
518     const DeviceGroupManager *gm = GetGmInstance();
519     ASSERT_NE(gm, nullptr);
520     DataChangeListener listener;
521     int32_t ret = gm->regDataChangeListener(TEST_APP_ID, &listener);
522     ASSERT_EQ(ret, HC_SUCCESS);
523 }
524 
525 HWTEST_F(GmRegDataChangeListenerTest, GmRegDataChangeListenerTest002, TestSize.Level0)
526 {
527     const DeviceGroupManager *gm = GetGmInstance();
528     ASSERT_NE(gm, nullptr);
529     DataChangeListener listener;
530     int32_t ret = gm->regDataChangeListener(TEST_APP_ID, &listener);
531     ASSERT_EQ(ret, HC_SUCCESS);
532     ret = gm->regDataChangeListener(TEST_APP_ID, &listener);
533     ASSERT_EQ(ret, HC_SUCCESS);
534 }
535 
536 HWTEST_F(GmRegDataChangeListenerTest, GmRegDataChangeListenerTest003, TestSize.Level0)
537 {
538     const DeviceGroupManager *gm = GetGmInstance();
539     ASSERT_NE(gm, nullptr);
540     DataChangeListener listener;
541     int32_t ret = gm->regDataChangeListener(nullptr, &listener);
542     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
543 }
544 
545 HWTEST_F(GmRegDataChangeListenerTest, GmRegDataChangeListenerTest004, TestSize.Level0)
546 {
547     const DeviceGroupManager *gm = GetGmInstance();
548     ASSERT_NE(gm, nullptr);
549     int32_t ret = gm->regDataChangeListener(TEST_APP_ID, nullptr);
550     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
551 }
552 
553 class GmUnRegDataChangeListenerTest : public testing::Test {
554 public:
555     static void SetUpTestCase();
556     static void TearDownTestCase();
557     void SetUp();
558     void TearDown();
559 };
560 
SetUpTestCase()561 void GmUnRegDataChangeListenerTest::SetUpTestCase() {}
TearDownTestCase()562 void GmUnRegDataChangeListenerTest::TearDownTestCase() {}
563 
SetUp()564 void GmUnRegDataChangeListenerTest::SetUp()
565 {
566     int ret = InitDeviceAuthService();
567     EXPECT_EQ(ret, HC_SUCCESS);
568 }
569 
TearDown()570 void GmUnRegDataChangeListenerTest::TearDown()
571 {
572     DestroyDeviceAuthService();
573 }
574 
575 HWTEST_F(GmUnRegDataChangeListenerTest, GmUnRegDataChangeListenerTest001, TestSize.Level0)
576 {
577     const DeviceGroupManager *gm = GetGmInstance();
578     ASSERT_NE(gm, nullptr);
579     DataChangeListener listener;
580     int32_t ret = gm->regDataChangeListener(TEST_APP_ID, &listener);
581     ASSERT_EQ(ret, HC_SUCCESS);
582     ret = gm->unRegDataChangeListener(TEST_APP_ID);
583     ASSERT_EQ(ret, HC_SUCCESS);
584 }
585 
586 HWTEST_F(GmUnRegDataChangeListenerTest, GmUnRegDataChangeListenerTest002, TestSize.Level0)
587 {
588     const DeviceGroupManager *gm = GetGmInstance();
589     ASSERT_NE(gm, nullptr);
590     int32_t ret = gm->unRegDataChangeListener(TEST_APP_ID);
591     ASSERT_EQ(ret, HC_SUCCESS);
592 }
593 
594 HWTEST_F(GmUnRegDataChangeListenerTest, GmUnRegDataChangeListenerTest003, TestSize.Level0)
595 {
596     const DeviceGroupManager *gm = GetGmInstance();
597     ASSERT_NE(gm, nullptr);
598     int32_t ret = gm->unRegDataChangeListener(nullptr);
599     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
600 }
601 
602 class GmCreateGroupTest : public testing::Test {
603 public:
604     static void SetUpTestCase();
605     static void TearDownTestCase();
606     void SetUp();
607     void TearDown();
608 };
609 
SetUpTestCase()610 void GmCreateGroupTest::SetUpTestCase() {}
TearDownTestCase()611 void GmCreateGroupTest::TearDownTestCase() {}
612 
SetUp()613 void GmCreateGroupTest::SetUp()
614 {
615     DeleteDatabase();
616     int ret = InitDeviceAuthService();
617     EXPECT_EQ(ret, HC_SUCCESS);
618 }
619 
TearDown()620 void GmCreateGroupTest::TearDown()
621 {
622     DestroyDeviceAuthService();
623 }
624 
625 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest001, TestSize.Level0)
626 {
627     const DeviceGroupManager *gm = GetGmInstance();
628     ASSERT_NE(gm, nullptr);
629     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
630     ASSERT_EQ(ret, HC_SUCCESS);
631     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
632     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
633 }
634 
635 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest002, TestSize.Level0)
636 {
637     const DeviceGroupManager *gm = GetGmInstance();
638     ASSERT_NE(gm, nullptr);
639     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
640     ASSERT_EQ(ret, HC_SUCCESS);
641     CreateDemoIdenticalAccountGroup();
642     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
643 }
644 
645 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest003, TestSize.Level0)
646 {
647     const DeviceGroupManager *gm = GetGmInstance();
648     ASSERT_NE(gm, nullptr);
649     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
650     ASSERT_EQ(ret, HC_SUCCESS);
651     CreateDemoIdenticalAccountGroup();
652     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
653     CreateDemoAcrossAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS3);
654     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
655 }
656 
657 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest101, TestSize.Level0)
658 {
659     const DeviceGroupManager *gm = GetGmInstance();
660     ASSERT_NE(gm, nullptr);
661     int32_t ret = gm->createGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, nullptr, CREATE_PARAMS);
662     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
663 }
664 
665 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest102, TestSize.Level0)
666 {
667     const DeviceGroupManager *gm = GetGmInstance();
668     ASSERT_NE(gm, nullptr);
669     int32_t ret = gm->createGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, nullptr);
670     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
671 }
672 
673 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest103, TestSize.Level0)
674 {
675     const DeviceGroupManager *gm = GetGmInstance();
676     ASSERT_NE(gm, nullptr);
677     int32_t ret = gm->createGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
678     ASSERT_NE(ret, HC_SUCCESS);
679 }
680 
681 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest104, TestSize.Level0)
682 {
683     const DeviceGroupManager *gm = GetGmInstance();
684     ASSERT_NE(gm, nullptr);
685     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
686     ASSERT_EQ(ret, HC_SUCCESS);
687     const char *createParams = "{\"deviceId\":\"TestAuthId\",\"groupType\":256,\"group"
688         "Visibility\":-1,\"userType\":0,\"expireTime\":-1}";
689     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
690     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
691 }
692 
693 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest105, TestSize.Level0)
694 {
695     const DeviceGroupManager *gm = GetGmInstance();
696     ASSERT_NE(gm, nullptr);
697     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
698     ASSERT_EQ(ret, HC_SUCCESS);
699     const char *createParams = "{\"groupName\":\"TestGroup\",\"groupType\":256,\"group"
700         "Visibility\":-1,\"userType\":0,\"expireTime\":-1}";
701     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
702     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
703 }
704 
705 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest106, TestSize.Level0)
706 {
707     const DeviceGroupManager *gm = GetGmInstance();
708     ASSERT_NE(gm, nullptr);
709     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
710     ASSERT_EQ(ret, HC_SUCCESS);
711     const char *createParams = "{\"groupName\":\"TestGroup\",\"deviceId\":\"TestAuthId\",\"group"
712         "Visibility\":-1,\"userType\":0,\"expireTime\":-1}";
713     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
714     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
715 }
716 
717 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest107, TestSize.Level0)
718 {
719     const DeviceGroupManager *gm = GetGmInstance();
720     ASSERT_NE(gm, nullptr);
721     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
722     ASSERT_EQ(ret, HC_SUCCESS);
723     const char *createParams = "{\"groupName\":\"TestGroup\",\"deviceId\":\"TestAuthId\",\"group"
724         "Type\":256,\"userType\":0,\"expireTime\":-1}";
725     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
726     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
727 }
728 
729 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest108, TestSize.Level0)
730 {
731     const DeviceGroupManager *gm = GetGmInstance();
732     ASSERT_NE(gm, nullptr);
733     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
734     ASSERT_EQ(ret, HC_SUCCESS);
735     const char *createParams = "{\"groupName\":\"TestGroup\",\"deviceId\":\"TestAuthId\",\"groupType\":256,\"group"
736         "Visibility\":-1,\"expireTime\":-1}";
737     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
738     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
739 }
740 
741 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest109, TestSize.Level0)
742 {
743     const DeviceGroupManager *gm = GetGmInstance();
744     ASSERT_NE(gm, nullptr);
745     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
746     ASSERT_EQ(ret, HC_SUCCESS);
747     const char *createParams = "{\"groupName\":\"TestGroup\",\"deviceId\":\"TestAuthId\",\"groupType\":256,\"group"
748         "Visibility\":-1,\"userType\":0}";
749     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
750     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
751 }
752 
753 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest110, TestSize.Level0)
754 {
755     const DeviceGroupManager *gm = GetGmInstance();
756     ASSERT_NE(gm, nullptr);
757     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
758     ASSERT_EQ(ret, HC_SUCCESS);
759     const char *createParams = "{\"groupName\":\"TestGroup\",\"deviceId\":\"TestAuthId\",\"groupType\":256,\"group"
760         "Visibility\":-1,\"userType\":0,\"expireTime\":-1}";
761     int32_t invalidOsAccountId = -3;
762     CreateDemoGroup(invalidOsAccountId, TEST_REQ_ID, TEST_APP_ID, createParams);
763     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
764 }
765 
766 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest111, TestSize.Level0)
767 {
768     const DeviceGroupManager *gm = GetGmInstance();
769     ASSERT_NE(gm, nullptr);
770     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
771     ASSERT_EQ(ret, HC_SUCCESS);
772     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
773     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
774     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
775     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
776 }
777 
778 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest112, TestSize.Level0)
779 {
780     const DeviceGroupManager *gm = GetGmInstance();
781     ASSERT_NE(gm, nullptr);
782     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
783     ASSERT_EQ(ret, HC_SUCCESS);
784     const char *createParams = "{\"groupName\":\"TestGroup\",\"deviceId\":\"TestAuthId\",\"groupType\":333,\"group"
785         "Visibility\":-1,\"userType\":0,\"expireTime\":-1}";
786     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
787     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
788 }
789 
790 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest113, TestSize.Level0)
791 {
792     const DeviceGroupManager *gm = GetGmInstance();
793     ASSERT_NE(gm, nullptr);
794     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
795     ASSERT_EQ(ret, HC_SUCCESS);
796     const char *createParams = "{\"groupName\":\"TestGroup\",\"deviceId\":\"TestAuthId\",\"groupType\":256,\"group"
797         "Visibility\":-3,\"userType\":0,\"expireTime\":-1}";
798     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
799     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
800 }
801 
802 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest114, TestSize.Level0)
803 {
804     const DeviceGroupManager *gm = GetGmInstance();
805     ASSERT_NE(gm, nullptr);
806     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
807     ASSERT_EQ(ret, HC_SUCCESS);
808     const char *createParams = "{\"groupName\":\"TestGroup\",\"deviceId\":\"TestAuthId\",\"groupType\":256,\"group"
809     "Visibility\":-1,\"userType\":-1,\"expireTime\":-1}";
810     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
811     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
812 }
813 
814 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest115, TestSize.Level0)
815 {
816     const DeviceGroupManager *gm = GetGmInstance();
817     ASSERT_NE(gm, nullptr);
818     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
819     ASSERT_EQ(ret, HC_SUCCESS);
820     const char *createParams = "{\"groupName\":\"TestGroup\",\"deviceId\":\"TestAuthId\",\"groupType\":256,\"group"
821     "Visibility\":-1,\"userType\":0,\"expireTime\":-3}";
822     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
823     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
824 }
825 
826 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest116, TestSize.Level0)
827 {
828     const DeviceGroupManager *gm = GetGmInstance();
829     ASSERT_NE(gm, nullptr);
830     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
831     ASSERT_EQ(ret, HC_SUCCESS);
832     CreateDemoAcrossAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS3);
833     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_ERROR);
834 }
835 
836 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest117, TestSize.Level0)
837 {
838     const DeviceGroupManager *gm = GetGmInstance();
839     ASSERT_NE(gm, nullptr);
840     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
841     ASSERT_EQ(ret, HC_SUCCESS);
842     CreateDemoIdenticalAccountGroup();
843     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
844     const char *createParams = "{\"groupType\":1282,\"userId\":\"1234ABCD\",\"peerUserId\":\"0CBA4321\"}";
845     CreateDemoAcrossAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
846     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
847 }
848 
849 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest118, TestSize.Level0)
850 {
851     const DeviceGroupManager *gm = GetGmInstance();
852     ASSERT_NE(gm, nullptr);
853     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
854     ASSERT_EQ(ret, HC_SUCCESS);
855     CreateDemoIdenticalAccountGroup();
856     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
857     const char *createParams = "{\"groupType\":1282,\"peerUserId\":\"0CBA4321\"}";
858     CreateDemoAcrossAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
859     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
860 }
861 
862 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest119, TestSize.Level0)
863 {
864     const DeviceGroupManager *gm = GetGmInstance();
865     ASSERT_NE(gm, nullptr);
866     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
867     ASSERT_EQ(ret, HC_SUCCESS);
868     CreateDemoIdenticalAccountGroup();
869     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
870     const char *createParams = "{\"groupType\":1282,\"userId\":\"1234ABCD\"}";
871     CreateDemoAcrossAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
872     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
873 }
874 
875 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest120, TestSize.Level0)
876 {
877     const DeviceGroupManager *gm = GetGmInstance();
878     ASSERT_NE(gm, nullptr);
879     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
880     ASSERT_EQ(ret, HC_SUCCESS);
881     CreateDemoIdenticalAccountGroup();
882     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
883     const char *createParams = "{\"groupType\":1282,\"userId\":\"1234ABCE\",\"peerUserId\":\"DCBA4321\"}";
884     CreateDemoAcrossAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
885     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
886 }
887 
888 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest121, TestSize.Level0)
889 {
890     const DeviceGroupManager *gm = GetGmInstance();
891     ASSERT_NE(gm, nullptr);
892     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
893     ASSERT_EQ(ret, HC_SUCCESS);
894     CreateDemoIdenticalAccountGroup();
895     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
896     const char *createParams = "{\"groupType\":1282,\"userId\":\"1234ABCD\",\"peerUserId\":\"1234ABCD\"}";
897     CreateDemoAcrossAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
898     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
899 }
900 
901 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest122, TestSize.Level0)
902 {
903     const DeviceGroupManager *gm = GetGmInstance();
904     ASSERT_NE(gm, nullptr);
905     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
906     ASSERT_EQ(ret, HC_SUCCESS);
907     CreateDemoIdenticalAccountGroup();
908     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
909     const char *createParams = "{\"groupType\":1282,\"userId\":\"1234ABCD\",\"peerUserId\":\"DCBA4321\",\"group"
910         "Visibility\":-3,\"userType\":0,\"expireTime\":-1}";
911     CreateDemoAcrossAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
912     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
913 }
914 
915 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest123, TestSize.Level0)
916 {
917     const DeviceGroupManager *gm = GetGmInstance();
918     ASSERT_NE(gm, nullptr);
919     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
920     ASSERT_EQ(ret, HC_SUCCESS);
921     CreateDemoIdenticalAccountGroup();
922     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
923     const char *createParams = "{\"groupType\":1282,\"userId\":\"1234ABCD\",\"peerUserId\":\"DCBA4321\",\"group"
924         "Visibility\":-1,\"userType\":-3,\"expireTime\":-1}";
925     CreateDemoAcrossAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
926     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
927 }
928 
929 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest124, TestSize.Level0)
930 {
931     const DeviceGroupManager *gm = GetGmInstance();
932     ASSERT_NE(gm, nullptr);
933     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
934     ASSERT_EQ(ret, HC_SUCCESS);
935     CreateDemoIdenticalAccountGroup();
936     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
937     const char *createParams = "{\"groupType\":1282,\"userId\":\"1234ABCD\",\"peerUserId\":\"DCBA4321\",\"group"
938         "Visibility\":-1,\"userType\":0,\"expireTime\":-3}";
939     CreateDemoAcrossAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, createParams);
940     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
941 }
942 
943 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest125, TestSize.Level0)
944 {
945     const DeviceGroupManager *gm = GetGmInstance();
946     ASSERT_NE(gm, nullptr);
947     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
948     ASSERT_EQ(ret, HC_SUCCESS);
949     CreateDemoIdenticalAccountGroup();
950     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
951     CreateDemoIdenticalAccountGroup();
952     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
953 }
954 
955 HWTEST_F(GmCreateGroupTest, GmCreateGroupTest126, TestSize.Level0)
956 {
957     const DeviceGroupManager *gm = GetGmInstance();
958     ASSERT_NE(gm, nullptr);
959     int32_t ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
960     ASSERT_EQ(ret, HC_SUCCESS);
961     CreateDemoIdenticalAccountGroup();
962     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
963     CreateDemoAcrossAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS3);
964     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
965     CreateDemoAcrossAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS3);
966     ASSERT_NE(g_asyncStatus, ASYNC_STATUS_FINISH);
967 }
968 
969 class GmCheckAccessToGroupTest : public testing::Test {
970 public:
971     static void SetUpTestCase();
972     static void TearDownTestCase();
973     void SetUp();
974     void TearDown();
975 };
976 
SetUpTestCase()977 void GmCheckAccessToGroupTest::SetUpTestCase()
978 {
979     DeleteDatabase();
980     int ret = InitDeviceAuthService();
981     ASSERT_EQ(ret, HC_SUCCESS);
982     const DeviceGroupManager *gm = GetGmInstance();
983     ASSERT_NE(gm, nullptr);
984     ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
985     ASSERT_EQ(ret, HC_SUCCESS);
986     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
987     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
988     CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS2);
989     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
990     CreateDemoIdenticalAccountGroup();
991     ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
992 }
993 
TearDownTestCase()994 void GmCheckAccessToGroupTest::TearDownTestCase()
995 {
996     DestroyDeviceAuthService();
997 }
998 
SetUp()999 void GmCheckAccessToGroupTest::SetUp() {}
1000 
TearDown()1001 void GmCheckAccessToGroupTest::TearDown() {}
1002 
1003 HWTEST_F(GmCheckAccessToGroupTest, GmCheckAccessToGroupTest001, TestSize.Level0)
1004 {
1005     const DeviceGroupManager *gm = GetGmInstance();
1006     ASSERT_NE(gm, nullptr);
1007     int32_t ret = gm->checkAccessToGroup(DEFAULT_OS_ACCOUNT, nullptr, TEST_GROUP_ID);
1008     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1009 }
1010 
1011 HWTEST_F(GmCheckAccessToGroupTest, GmCheckAccessToGroupTest002, TestSize.Level0)
1012 {
1013     const DeviceGroupManager *gm = GetGmInstance();
1014     ASSERT_NE(gm, nullptr);
1015     int32_t ret = gm->checkAccessToGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, nullptr);
1016     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1017 }
1018 
1019 HWTEST_F(GmCheckAccessToGroupTest, GmCheckAccessToGroupTest003, TestSize.Level0)
1020 {
1021     const DeviceGroupManager *gm = GetGmInstance();
1022     ASSERT_NE(gm, nullptr);
1023     int32_t ret = gm->checkAccessToGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID);
1024     ASSERT_EQ(ret, HC_SUCCESS);
1025 }
1026 
1027 HWTEST_F(GmCheckAccessToGroupTest, GmCheckAccessToGroupTest004, TestSize.Level0)
1028 {
1029     const DeviceGroupManager *gm = GetGmInstance();
1030     ASSERT_NE(gm, nullptr);
1031     int32_t ret = gm->checkAccessToGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID2, TEST_GROUP_ID2);
1032     ASSERT_NE(ret, HC_SUCCESS);
1033 }
1034 
1035 HWTEST_F(GmCheckAccessToGroupTest, GmCheckAccessToGroupTest005, TestSize.Level0)
1036 {
1037     const DeviceGroupManager *gm = GetGmInstance();
1038     ASSERT_NE(gm, nullptr);
1039     int32_t ret = gm->checkAccessToGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID4);
1040     ASSERT_NE(ret, HC_SUCCESS);
1041 }
1042 
1043 class GmGetPkInfoListTest : public testing::Test {
1044 public:
1045     static void SetUpTestCase();
1046     static void TearDownTestCase();
1047     void SetUp();
1048     void TearDown();
1049 };
1050 
SetUpTestCase()1051 void GmGetPkInfoListTest::SetUpTestCase() {}
TearDownTestCase()1052 void GmGetPkInfoListTest::TearDownTestCase() {}
1053 
SetUp()1054 void GmGetPkInfoListTest::SetUp()
1055 {
1056     int ret = InitDeviceAuthService();
1057     EXPECT_EQ(ret, HC_SUCCESS);
1058 }
1059 
TearDown()1060 void GmGetPkInfoListTest::TearDown()
1061 {
1062     DestroyDeviceAuthService();
1063 }
1064 
1065 HWTEST_F(GmGetPkInfoListTest, GmGetPkInfoListTest001, TestSize.Level0)
1066 {
1067     const DeviceGroupManager *gm = GetGmInstance();
1068     ASSERT_NE(gm, nullptr);
1069     char *returnData = nullptr;
1070     uint32_t returnNum = 0;
1071     int32_t ret = gm->getPkInfoList(DEFAULT_OS_ACCOUNT, nullptr, TEST_QUERY_PARAMS, &returnData, &returnNum);
1072     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1073 }
1074 
1075 HWTEST_F(GmGetPkInfoListTest, GmGetPkInfoListTest002, TestSize.Level0)
1076 {
1077     const DeviceGroupManager *gm = GetGmInstance();
1078     ASSERT_NE(gm, nullptr);
1079     char *returnData = nullptr;
1080     uint32_t returnNum = 0;
1081     int32_t ret = gm->getPkInfoList(DEFAULT_OS_ACCOUNT, TEST_APP_ID, nullptr, &returnData, &returnNum);
1082     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1083 }
1084 
1085 HWTEST_F(GmGetPkInfoListTest, GmGetPkInfoListTest003, TestSize.Level0)
1086 {
1087     const DeviceGroupManager *gm = GetGmInstance();
1088     ASSERT_NE(gm, nullptr);
1089     uint32_t returnNum = 0;
1090     int32_t ret = gm->getPkInfoList(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_QUERY_PARAMS, nullptr, &returnNum);
1091     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1092 }
1093 
1094 HWTEST_F(GmGetPkInfoListTest, GmGetPkInfoListTest004, TestSize.Level0)
1095 {
1096     const DeviceGroupManager *gm = GetGmInstance();
1097     ASSERT_NE(gm, nullptr);
1098     char *returnData = nullptr;
1099     int32_t ret = gm->getPkInfoList(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_QUERY_PARAMS, &returnData, nullptr);
1100     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1101 }
1102 
1103 HWTEST_F(GmGetPkInfoListTest, GmGetPkInfoListTest005, TestSize.Level0)
1104 {
1105     const DeviceGroupManager *gm = GetGmInstance();
1106     EXPECT_NE(gm, nullptr);
1107     char *returnData = nullptr;
1108     uint32_t returnNum = 0;
1109     const char *queryParams = "{\"isSelfPk\":true}";
1110     int32_t ret = gm->getPkInfoList(DEFAULT_OS_ACCOUNT, TEST_APP_ID, queryParams, &returnData, &returnNum);
1111     ASSERT_NE(ret, HC_SUCCESS);
1112 }
1113 
1114 HWTEST_F(GmGetPkInfoListTest, GmGetPkInfoListTest006, TestSize.Level0)
1115 {
1116     const DeviceGroupManager *gm = GetGmInstance();
1117     EXPECT_NE(gm, nullptr);
1118     char *returnData = nullptr;
1119     uint32_t returnNum = 0;
1120     const char *queryParams = "{\"udid\":\"ABCD\"}";
1121     int32_t ret = gm->getPkInfoList(DEFAULT_OS_ACCOUNT, TEST_APP_ID, queryParams, &returnData, &returnNum);
1122     ASSERT_NE(ret, HC_SUCCESS);
1123 }
1124 
1125 HWTEST_F(GmGetPkInfoListTest, GmGetPkInfoListTest007, TestSize.Level0)
1126 {
1127     const DeviceGroupManager *gm = GetGmInstance();
1128     EXPECT_NE(gm, nullptr);
1129     char *returnData = nullptr;
1130     uint32_t returnNum = 0;
1131     const char *queryParams = "{\"udid\":\"5420459D93FE773F9945FD64277FBA2CAB8FB996DDC1D0B97676FBB1242"
1132         "B3930\",\"isSelfPk\":true}";
1133     int32_t ret = gm->getPkInfoList(DEFAULT_OS_ACCOUNT, TEST_APP_ID, queryParams, &returnData, &returnNum);
1134     ASSERT_EQ(ret, HC_SUCCESS);
1135     ASSERT_NE(returnData, nullptr);
1136     gm->destroyInfo(&returnData);
1137 }
1138 
1139 HWTEST_F(GmGetPkInfoListTest, GmGetPkInfoListTest008, TestSize.Level0)
1140 {
1141     const DeviceGroupManager *gm = GetGmInstance();
1142     EXPECT_NE(gm, nullptr);
1143     char *returnData = nullptr;
1144     uint32_t returnNum = 0;
1145     const char *queryParams = "{\"udid\":\"ABCD\",\"isSelfPk\":true}";
1146     int32_t ret = gm->getPkInfoList(DEFAULT_OS_ACCOUNT, TEST_APP_ID, queryParams, &returnData, &returnNum);
1147     ASSERT_EQ(ret, HC_SUCCESS);
1148     ASSERT_NE(returnData, nullptr);
1149     gm->destroyInfo(&returnData);
1150 }
1151 
1152 HWTEST_F(GmGetPkInfoListTest, GmGetPkInfoListTest009, TestSize.Level0)
1153 {
1154     const DeviceGroupManager *gm = GetGmInstance();
1155     EXPECT_NE(gm, nullptr);
1156     char *returnData = nullptr;
1157     uint32_t returnNum = 0;
1158     const char *queryParams = "{\"udid\":\"5420459D93FE773F9945FD64277FBA2CAB8FB996DDC1D0B97676FBB1242"
1159         "B3930\",\"isSelfPk\":false}";
1160     int32_t ret = gm->getPkInfoList(DEFAULT_OS_ACCOUNT, TEST_APP_ID, queryParams, &returnData, &returnNum);
1161     ASSERT_EQ(ret, HC_SUCCESS);
1162     ASSERT_NE(returnData, nullptr);
1163     gm->destroyInfo(&returnData);
1164 }
1165 
1166 HWTEST_F(GmGetPkInfoListTest, GmGetPkInfoListTest010, TestSize.Level0)
1167 {
1168     const DeviceGroupManager *gm = GetGmInstance();
1169     EXPECT_NE(gm, nullptr);
1170     char *returnData = nullptr;
1171     uint32_t returnNum = 0;
1172     const char *queryParams = "{\"udid\":\"ABCD\",\"isSelfPk\":false}";
1173     int32_t ret = gm->getPkInfoList(DEFAULT_OS_ACCOUNT, TEST_APP_ID, queryParams, &returnData, &returnNum);
1174     ASSERT_EQ(ret, HC_SUCCESS);
1175     ASSERT_NE(returnData, nullptr);
1176     gm->destroyInfo(&returnData);
1177 }
1178 
1179 class GmGetGroupInfoByIdTest : public testing::Test {
1180 public:
1181     static void SetUpTestCase();
1182     static void TearDownTestCase();
1183     void SetUp();
1184     void TearDown();
1185 };
1186 
SetUpTestCase()1187 void GmGetGroupInfoByIdTest::SetUpTestCase() {}
TearDownTestCase()1188 void GmGetGroupInfoByIdTest::TearDownTestCase() {}
1189 
SetUp()1190 void GmGetGroupInfoByIdTest::SetUp()
1191 {
1192     int ret = InitDeviceAuthService();
1193     EXPECT_EQ(ret, HC_SUCCESS);
1194 }
1195 
TearDown()1196 void GmGetGroupInfoByIdTest::TearDown()
1197 {
1198     DestroyDeviceAuthService();
1199 }
1200 
1201 HWTEST_F(GmGetGroupInfoByIdTest, GmGetGroupInfoByIdTest001, TestSize.Level0)
1202 {
1203     const DeviceGroupManager *gm = GetGmInstance();
1204     ASSERT_NE(gm, nullptr);
1205     char *returnData = nullptr;
1206     int32_t ret = gm->getGroupInfoById(DEFAULT_OS_ACCOUNT, nullptr, TEST_GROUP_ID, &returnData);
1207     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1208 }
1209 
1210 HWTEST_F(GmGetGroupInfoByIdTest, GmGetGroupInfoByIdTest002, TestSize.Level0)
1211 {
1212     const DeviceGroupManager *gm = GetGmInstance();
1213     ASSERT_NE(gm, nullptr);
1214     char *returnData = nullptr;
1215     int32_t ret = gm->getGroupInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID, nullptr, &returnData);
1216     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1217 }
1218 
1219 HWTEST_F(GmGetGroupInfoByIdTest, GmGetGroupInfoByIdTest003, TestSize.Level0)
1220 {
1221     const DeviceGroupManager *gm = GetGmInstance();
1222     ASSERT_NE(gm, nullptr);
1223     int32_t ret = gm->getGroupInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID, nullptr);
1224     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1225 }
1226 
1227 HWTEST_F(GmGetGroupInfoByIdTest, GmGetGroupInfoByIdTest004, TestSize.Level0)
1228 {
1229     const DeviceGroupManager *gm = GetGmInstance();
1230     ASSERT_NE(gm, nullptr);
1231     char *returnData = nullptr;
1232     int32_t ret = gm->getGroupInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID, &returnData);
1233     ASSERT_EQ(ret, HC_SUCCESS);
1234     ASSERT_NE(returnData, nullptr);
1235     gm->destroyInfo(&returnData);
1236 }
1237 
1238 HWTEST_F(GmGetGroupInfoByIdTest, GmGetGroupInfoByIdTest005, TestSize.Level0)
1239 {
1240     const DeviceGroupManager *gm = GetGmInstance();
1241     ASSERT_NE(gm, nullptr);
1242     char *returnData = nullptr;
1243     int32_t ret = gm->getGroupInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID2, TEST_GROUP_ID2, &returnData);
1244     ASSERT_NE(ret, HC_SUCCESS);
1245 }
1246 
1247 HWTEST_F(GmGetGroupInfoByIdTest, GmGetGroupInfoByIdTest006, TestSize.Level0)
1248 {
1249     const DeviceGroupManager *gm = GetGmInstance();
1250     ASSERT_NE(gm, nullptr);
1251     char *returnData = nullptr;
1252     int32_t ret = gm->getGroupInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID4, &returnData);
1253     ASSERT_NE(ret, HC_SUCCESS);
1254 }
1255 
1256 class GmGetGroupInfoTest : public testing::Test {
1257 public:
1258     static void SetUpTestCase();
1259     static void TearDownTestCase();
1260     void SetUp();
1261     void TearDown();
1262 };
1263 
SetUpTestCase()1264 void GmGetGroupInfoTest::SetUpTestCase() {}
TearDownTestCase()1265 void GmGetGroupInfoTest::TearDownTestCase() {}
1266 
SetUp()1267 void GmGetGroupInfoTest::SetUp()
1268 {
1269     int ret = InitDeviceAuthService();
1270     EXPECT_EQ(ret, HC_SUCCESS);
1271 }
1272 
TearDown()1273 void GmGetGroupInfoTest::TearDown()
1274 {
1275     DestroyDeviceAuthService();
1276 }
1277 
1278 HWTEST_F(GmGetGroupInfoTest, GmGetGroupInfoTest001, TestSize.Level0)
1279 {
1280     const DeviceGroupManager *gm = GetGmInstance();
1281     ASSERT_NE(gm, nullptr);
1282     char *returnData = nullptr;
1283     uint32_t returnNum = 0;
1284     int32_t ret = gm->getGroupInfo(DEFAULT_OS_ACCOUNT, nullptr, TEST_QUERY_PARAMS, &returnData, &returnNum);
1285     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1286 }
1287 
1288 HWTEST_F(GmGetGroupInfoTest, GmGetGroupInfoTest002, TestSize.Level0)
1289 {
1290     const DeviceGroupManager *gm = GetGmInstance();
1291     ASSERT_NE(gm, nullptr);
1292     char *returnData = nullptr;
1293     uint32_t returnNum = 0;
1294     int32_t ret = gm->getGroupInfo(DEFAULT_OS_ACCOUNT, TEST_APP_ID, nullptr, &returnData, &returnNum);
1295     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1296 }
1297 
1298 HWTEST_F(GmGetGroupInfoTest, GmGetGroupInfoTest003, TestSize.Level0)
1299 {
1300     const DeviceGroupManager *gm = GetGmInstance();
1301     ASSERT_NE(gm, nullptr);
1302     uint32_t returnNum = 0;
1303     int32_t ret = gm->getGroupInfo(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_QUERY_PARAMS, nullptr, &returnNum);
1304     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1305 }
1306 
1307 HWTEST_F(GmGetGroupInfoTest, GmGetGroupInfoTest004, TestSize.Level0)
1308 {
1309     const DeviceGroupManager *gm = GetGmInstance();
1310     ASSERT_NE(gm, nullptr);
1311     char *returnData = nullptr;
1312     int32_t ret = gm->getGroupInfo(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_QUERY_PARAMS, &returnData, nullptr);
1313     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1314 }
1315 
1316 HWTEST_F(GmGetGroupInfoTest, GmGetGroupInfoTest005, TestSize.Level0)
1317 {
1318     const DeviceGroupManager *gm = GetGmInstance();
1319     ASSERT_NE(gm, nullptr);
1320     char *returnData = nullptr;
1321     uint32_t returnNum = 0;
1322     const char *queryParams = "{\"groupOwner\":\"TestAppId\"}";
1323     int32_t ret = gm->getGroupInfo(DEFAULT_OS_ACCOUNT, TEST_APP_ID, queryParams, &returnData, &returnNum);
1324     ASSERT_EQ(ret, HC_SUCCESS);
1325     ASSERT_NE(returnData, nullptr);
1326     gm->destroyInfo(&returnData);
1327 }
1328 
1329 HWTEST_F(GmGetGroupInfoTest, GmGetGroupInfoTest006, TestSize.Level0)
1330 {
1331     const DeviceGroupManager *gm = GetGmInstance();
1332     ASSERT_NE(gm, nullptr);
1333     char *returnData = nullptr;
1334     uint32_t returnNum = 0;
1335     const char *queryParams = "{\"groupOwner\":\"TestAppId2\"}";
1336     int32_t ret = gm->getGroupInfo(DEFAULT_OS_ACCOUNT, TEST_APP_ID, queryParams, &returnData, &returnNum);
1337     ASSERT_EQ(ret, HC_SUCCESS);
1338     ASSERT_NE(returnData, nullptr);
1339     gm->destroyInfo(&returnData);
1340 }
1341 
1342 HWTEST_F(GmGetGroupInfoTest, GmGetGroupInfoTest007, TestSize.Level0)
1343 {
1344     const DeviceGroupManager *gm = GetGmInstance();
1345     ASSERT_NE(gm, nullptr);
1346     char *returnData = nullptr;
1347     uint32_t returnNum = 0;
1348     const char *queryParams = "{\"groupType\":0}";
1349     int32_t ret = gm->getGroupInfo(DEFAULT_OS_ACCOUNT, TEST_APP_ID, queryParams, &returnData, &returnNum);
1350     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1351 }
1352 
1353 HWTEST_F(GmGetGroupInfoTest, GmGetGroupInfoTest008, TestSize.Level0)
1354 {
1355     const DeviceGroupManager *gm = GetGmInstance();
1356     ASSERT_NE(gm, nullptr);
1357     char *returnData = nullptr;
1358     uint32_t returnNum = 0;
1359     const char *queryParams = "{\"groupType\":123456}";
1360     int32_t ret = gm->getGroupInfo(DEFAULT_OS_ACCOUNT, TEST_APP_ID, queryParams, &returnData, &returnNum);
1361     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1362 }
1363 
1364 class GmGetJoinedGroupsTest : public testing::Test {
1365 public:
1366     static void SetUpTestCase();
1367     static void TearDownTestCase();
1368     void SetUp();
1369     void TearDown();
1370 };
1371 
SetUpTestCase()1372 void GmGetJoinedGroupsTest::SetUpTestCase() {}
TearDownTestCase()1373 void GmGetJoinedGroupsTest::TearDownTestCase() {}
1374 
SetUp()1375 void GmGetJoinedGroupsTest::SetUp()
1376 {
1377     int ret = InitDeviceAuthService();
1378     EXPECT_EQ(ret, HC_SUCCESS);
1379 }
1380 
TearDown()1381 void GmGetJoinedGroupsTest::TearDown()
1382 {
1383     DestroyDeviceAuthService();
1384 }
1385 
1386 HWTEST_F(GmGetJoinedGroupsTest, GmGetJoinedGroupsTest001, TestSize.Level0)
1387 {
1388     const DeviceGroupManager *gm = GetGmInstance();
1389     ASSERT_NE(gm, nullptr);
1390     char *returnData = nullptr;
1391     uint32_t returnNum = 0;
1392     int32_t ret = gm->getJoinedGroups(DEFAULT_OS_ACCOUNT, nullptr, PEER_TO_PEER_GROUP, &returnData, &returnNum);
1393     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1394 }
1395 
1396 HWTEST_F(GmGetJoinedGroupsTest, GmGetJoinedGroupsTest002, TestSize.Level0)
1397 {
1398     const DeviceGroupManager *gm = GetGmInstance();
1399     ASSERT_NE(gm, nullptr);
1400     uint32_t returnNum = 0;
1401     int32_t ret = gm->getJoinedGroups(DEFAULT_OS_ACCOUNT, TEST_APP_ID, PEER_TO_PEER_GROUP, nullptr, &returnNum);
1402     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1403 }
1404 
1405 HWTEST_F(GmGetJoinedGroupsTest, GmGetJoinedGroupsTest003, TestSize.Level0)
1406 {
1407     const DeviceGroupManager *gm = GetGmInstance();
1408     ASSERT_NE(gm, nullptr);
1409     char *returnData = nullptr;
1410     int32_t ret = gm->getJoinedGroups(DEFAULT_OS_ACCOUNT, nullptr, PEER_TO_PEER_GROUP, &returnData, nullptr);
1411     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1412 }
1413 
1414 HWTEST_F(GmGetJoinedGroupsTest, GmGetJoinedGroupsTest004, TestSize.Level0)
1415 {
1416     const DeviceGroupManager *gm = GetGmInstance();
1417     ASSERT_NE(gm, nullptr);
1418     char *returnData = nullptr;
1419     uint32_t returnNum = 0;
1420     int32_t ret = gm->getJoinedGroups(DEFAULT_OS_ACCOUNT, TEST_APP_ID, GROUP_TYPE_INVALID, &returnData, &returnNum);
1421     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1422 }
1423 
1424 HWTEST_F(GmGetJoinedGroupsTest, GmGetJoinedGroupsTest005, TestSize.Level0)
1425 {
1426     const DeviceGroupManager *gm = GetGmInstance();
1427     ASSERT_NE(gm, nullptr);
1428     char *returnData = nullptr;
1429     uint32_t returnNum = 0;
1430     int32_t ret = gm->getJoinedGroups(DEFAULT_OS_ACCOUNT, TEST_APP_ID, PEER_TO_PEER_GROUP, &returnData, &returnNum);
1431     ASSERT_EQ(ret, HC_SUCCESS);
1432     ASSERT_NE(returnData, nullptr);
1433     ASSERT_NE(returnNum, 0);
1434     gm->destroyInfo(&returnData);
1435 }
1436 
1437 HWTEST_F(GmGetJoinedGroupsTest, GmGetJoinedGroupsTest006, TestSize.Level0)
1438 {
1439     const DeviceGroupManager *gm = GetGmInstance();
1440     ASSERT_NE(gm, nullptr);
1441     char *returnData = nullptr;
1442     uint32_t returnNum = 0;
1443     int32_t ret = gm->getJoinedGroups(DEFAULT_OS_ACCOUNT, TEST_APP_ID2, PEER_TO_PEER_GROUP, &returnData, &returnNum);
1444     ASSERT_EQ(ret, HC_SUCCESS);
1445     ASSERT_NE(returnData, nullptr);
1446     gm->destroyInfo(&returnData);
1447 }
1448 
1449 class GmGetRelatedGroupsTest : public testing::Test {
1450 public:
1451     static void SetUpTestCase();
1452     static void TearDownTestCase();
1453     void SetUp();
1454     void TearDown();
1455 };
1456 
SetUpTestCase()1457 void GmGetRelatedGroupsTest::SetUpTestCase() {}
TearDownTestCase()1458 void GmGetRelatedGroupsTest::TearDownTestCase() {}
1459 
SetUp()1460 void GmGetRelatedGroupsTest::SetUp()
1461 {
1462     int ret = InitDeviceAuthService();
1463     EXPECT_EQ(ret, HC_SUCCESS);
1464 }
1465 
TearDown()1466 void GmGetRelatedGroupsTest::TearDown()
1467 {
1468     DestroyDeviceAuthService();
1469 }
1470 
1471 HWTEST_F(GmGetRelatedGroupsTest, GmGetRelatedGroupsTest001, TestSize.Level0)
1472 {
1473     const DeviceGroupManager *gm = GetGmInstance();
1474     ASSERT_NE(gm, nullptr);
1475     char *returnData = nullptr;
1476     uint32_t returnNum = 0;
1477     int32_t ret = gm->getRelatedGroups(DEFAULT_OS_ACCOUNT, nullptr, TEST_AUTH_ID, &returnData, &returnNum);
1478     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1479 }
1480 
1481 HWTEST_F(GmGetRelatedGroupsTest, GmGetRelatedGroupsTest002, TestSize.Level0)
1482 {
1483     const DeviceGroupManager *gm = GetGmInstance();
1484     ASSERT_NE(gm, nullptr);
1485     char *returnData = nullptr;
1486     uint32_t returnNum = 0;
1487     int32_t ret = gm->getRelatedGroups(DEFAULT_OS_ACCOUNT, TEST_APP_ID, nullptr, &returnData, &returnNum);
1488     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1489 }
1490 
1491 HWTEST_F(GmGetRelatedGroupsTest, GmGetRelatedGroupsTest003, TestSize.Level0)
1492 {
1493     const DeviceGroupManager *gm = GetGmInstance();
1494     ASSERT_NE(gm, nullptr);
1495     uint32_t returnNum = 0;
1496     int32_t ret = gm->getRelatedGroups(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_AUTH_ID, nullptr, &returnNum);
1497     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1498 }
1499 
1500 HWTEST_F(GmGetRelatedGroupsTest, GmGetRelatedGroupsTest004, TestSize.Level0)
1501 {
1502     const DeviceGroupManager *gm = GetGmInstance();
1503     ASSERT_NE(gm, nullptr);
1504     char *returnData = nullptr;
1505     int32_t ret = gm->getRelatedGroups(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_AUTH_ID, &returnData, nullptr);
1506     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1507 }
1508 
1509 HWTEST_F(GmGetRelatedGroupsTest, GmGetRelatedGroupsTest005, TestSize.Level0)
1510 {
1511     const DeviceGroupManager *gm = GetGmInstance();
1512     ASSERT_NE(gm, nullptr);
1513     char *returnData = nullptr;
1514     uint32_t returnNum = 0;
1515     int32_t ret = gm->getRelatedGroups(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_AUTH_ID, &returnData, &returnNum);
1516     ASSERT_EQ(ret, HC_SUCCESS);
1517     ASSERT_NE(returnData, nullptr);
1518     ASSERT_NE(returnNum, 0);
1519     gm->destroyInfo(&returnData);
1520 }
1521 
1522 HWTEST_F(GmGetRelatedGroupsTest, GmGetRelatedGroupsTest006, TestSize.Level0)
1523 {
1524     const DeviceGroupManager *gm = GetGmInstance();
1525     ASSERT_NE(gm, nullptr);
1526     char *returnData = nullptr;
1527     uint32_t returnNum = 0;
1528     int32_t ret = gm->getRelatedGroups(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_AUTH_ID2, &returnData, &returnNum);
1529     ASSERT_EQ(ret, HC_SUCCESS);
1530     ASSERT_NE(returnData, nullptr);
1531     gm->destroyInfo(&returnData);
1532 }
1533 
1534 class GmGetDeviceInfoByIdTest : public testing::Test {
1535 public:
1536     static void SetUpTestCase();
1537     static void TearDownTestCase();
1538     void SetUp();
1539     void TearDown();
1540 };
1541 
SetUpTestCase()1542 void GmGetDeviceInfoByIdTest::SetUpTestCase() {}
TearDownTestCase()1543 void GmGetDeviceInfoByIdTest::TearDownTestCase() {}
1544 
SetUp()1545 void GmGetDeviceInfoByIdTest::SetUp()
1546 {
1547     int ret = InitDeviceAuthService();
1548     EXPECT_EQ(ret, HC_SUCCESS);
1549 }
1550 
TearDown()1551 void GmGetDeviceInfoByIdTest::TearDown()
1552 {
1553     DestroyDeviceAuthService();
1554 }
1555 
1556 HWTEST_F(GmGetDeviceInfoByIdTest, GmGetDeviceInfoByIdTest001, TestSize.Level0)
1557 {
1558     const DeviceGroupManager *gm = GetGmInstance();
1559     ASSERT_NE(gm, nullptr);
1560     char *returnData = nullptr;
1561     int32_t ret = gm->getDeviceInfoById(DEFAULT_OS_ACCOUNT, nullptr, TEST_AUTH_ID, TEST_GROUP_ID, &returnData);
1562     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1563 }
1564 
1565 HWTEST_F(GmGetDeviceInfoByIdTest, GmGetDeviceInfoByIdTest002, TestSize.Level0)
1566 {
1567     const DeviceGroupManager *gm = GetGmInstance();
1568     ASSERT_NE(gm, nullptr);
1569     char *returnData = nullptr;
1570     int32_t ret = gm->getDeviceInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID, nullptr, TEST_GROUP_ID, &returnData);
1571     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1572 }
1573 
1574 HWTEST_F(GmGetDeviceInfoByIdTest, GmGetDeviceInfoByIdTest003, TestSize.Level0)
1575 {
1576     const DeviceGroupManager *gm = GetGmInstance();
1577     ASSERT_NE(gm, nullptr);
1578     char *returnData = nullptr;
1579     int32_t ret = gm->getDeviceInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_AUTH_ID, nullptr, &returnData);
1580     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1581 }
1582 
1583 HWTEST_F(GmGetDeviceInfoByIdTest, GmGetDeviceInfoByIdTest004, TestSize.Level0)
1584 {
1585     const DeviceGroupManager *gm = GetGmInstance();
1586     ASSERT_NE(gm, nullptr);
1587     int32_t ret = gm->getDeviceInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_AUTH_ID, TEST_GROUP_ID, nullptr);
1588     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1589 }
1590 
1591 HWTEST_F(GmGetDeviceInfoByIdTest, GmGetDeviceInfoByIdTest005, TestSize.Level0)
1592 {
1593     const DeviceGroupManager *gm = GetGmInstance();
1594     ASSERT_NE(gm, nullptr);
1595     char *returnData = nullptr;
1596     int32_t ret = gm->getDeviceInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_AUTH_ID, TEST_GROUP_ID, &returnData);
1597     ASSERT_EQ(ret, HC_SUCCESS);
1598     ASSERT_NE(returnData, nullptr);
1599     gm->destroyInfo(&returnData);
1600 }
1601 
1602 HWTEST_F(GmGetDeviceInfoByIdTest, GmGetDeviceInfoByIdTest006, TestSize.Level0)
1603 {
1604     const DeviceGroupManager *gm = GetGmInstance();
1605     ASSERT_NE(gm, nullptr);
1606     char *returnData = nullptr;
1607     int32_t ret = gm->getDeviceInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID2, TEST_AUTH_ID, TEST_GROUP_ID2, &returnData);
1608     ASSERT_NE(ret, HC_SUCCESS);
1609 }
1610 
1611 HWTEST_F(GmGetDeviceInfoByIdTest, GmGetDeviceInfoByIdTest007, TestSize.Level0)
1612 {
1613     const DeviceGroupManager *gm = GetGmInstance();
1614     ASSERT_NE(gm, nullptr);
1615     char *returnData = nullptr;
1616     int32_t ret = gm->getDeviceInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_AUTH_ID, TEST_GROUP_ID4, &returnData);
1617     ASSERT_NE(ret, HC_SUCCESS);
1618 }
1619 
1620 HWTEST_F(GmGetDeviceInfoByIdTest, GmGetDeviceInfoByIdTest008, TestSize.Level0)
1621 {
1622     const DeviceGroupManager *gm = GetGmInstance();
1623     ASSERT_NE(gm, nullptr);
1624     char *returnData = nullptr;
1625     int32_t ret = gm->getDeviceInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_AUTH_ID2, TEST_GROUP_ID, &returnData);
1626     ASSERT_NE(ret, HC_SUCCESS);
1627 }
1628 
1629 class GmGetTrustedDevicesTest : public testing::Test {
1630 public:
1631     static void SetUpTestCase();
1632     static void TearDownTestCase();
1633     void SetUp();
1634     void TearDown();
1635 };
1636 
SetUpTestCase()1637 void GmGetTrustedDevicesTest::SetUpTestCase() {}
TearDownTestCase()1638 void GmGetTrustedDevicesTest::TearDownTestCase() {}
1639 
SetUp()1640 void GmGetTrustedDevicesTest::SetUp()
1641 {
1642     int ret = InitDeviceAuthService();
1643     EXPECT_EQ(ret, HC_SUCCESS);
1644 }
1645 
TearDown()1646 void GmGetTrustedDevicesTest::TearDown()
1647 {
1648     DestroyDeviceAuthService();
1649 }
1650 
1651 HWTEST_F(GmGetTrustedDevicesTest, GmGetTrustedDevicesTest001, TestSize.Level0)
1652 {
1653     const DeviceGroupManager *gm = GetGmInstance();
1654     ASSERT_NE(gm, nullptr);
1655     char *returnData = nullptr;
1656     uint32_t returnNum = 0;
1657     int32_t ret = gm->getTrustedDevices(DEFAULT_OS_ACCOUNT, nullptr, TEST_GROUP_ID, &returnData, &returnNum);
1658     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1659 }
1660 
1661 HWTEST_F(GmGetTrustedDevicesTest, GmGetTrustedDevicesTest002, TestSize.Level0)
1662 {
1663     const DeviceGroupManager *gm = GetGmInstance();
1664     ASSERT_NE(gm, nullptr);
1665     char *returnData = nullptr;
1666     uint32_t returnNum = 0;
1667     int32_t ret = gm->getTrustedDevices(DEFAULT_OS_ACCOUNT, TEST_APP_ID, nullptr, &returnData, &returnNum);
1668     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1669 }
1670 
1671 HWTEST_F(GmGetTrustedDevicesTest, GmGetTrustedDevicesTest003, TestSize.Level0)
1672 {
1673     const DeviceGroupManager *gm = GetGmInstance();
1674     ASSERT_NE(gm, nullptr);
1675     uint32_t returnNum = 0;
1676     int32_t ret = gm->getTrustedDevices(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID, nullptr, &returnNum);
1677     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1678 }
1679 
1680 HWTEST_F(GmGetTrustedDevicesTest, GmGetTrustedDevicesTest004, TestSize.Level0)
1681 {
1682     const DeviceGroupManager *gm = GetGmInstance();
1683     ASSERT_NE(gm, nullptr);
1684     char *returnData = nullptr;
1685     int32_t ret = gm->getTrustedDevices(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID, &returnData, nullptr);
1686     ASSERT_EQ(ret, HC_ERR_INVALID_PARAMS);
1687 }
1688 
1689 HWTEST_F(GmGetTrustedDevicesTest, GmGetTrustedDevicesTest005, TestSize.Level0)
1690 {
1691     const DeviceGroupManager *gm = GetGmInstance();
1692     ASSERT_NE(gm, nullptr);
1693     char *returnData = nullptr;
1694     uint32_t returnNum = 0;
1695     int32_t ret = gm->getTrustedDevices(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID, &returnData, &returnNum);
1696     ASSERT_EQ(ret, HC_SUCCESS);
1697     ASSERT_NE(returnData, nullptr);
1698     ASSERT_NE(returnNum, 0);
1699     gm->destroyInfo(&returnData);
1700 }
1701 
1702 HWTEST_F(GmGetTrustedDevicesTest, GmGetTrustedDevicesTest006, TestSize.Level0)
1703 {
1704     const DeviceGroupManager *gm = GetGmInstance();
1705     ASSERT_NE(gm, nullptr);
1706     char *returnData = nullptr;
1707     uint32_t returnNum = 0;
1708     int32_t ret = gm->getTrustedDevices(DEFAULT_OS_ACCOUNT, TEST_APP_ID2, TEST_GROUP_ID2, &returnData, &returnNum);
1709     ASSERT_NE(ret, HC_SUCCESS);
1710 }
1711 
1712 HWTEST_F(GmGetTrustedDevicesTest, GmGetTrustedDevicesTest007, TestSize.Level0)
1713 {
1714     const DeviceGroupManager *gm = GetGmInstance();
1715     ASSERT_NE(gm, nullptr);
1716     char *returnData = nullptr;
1717     uint32_t returnNum = 0;
1718     int32_t ret = gm->getTrustedDevices(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID4, &returnData, &returnNum);
1719     ASSERT_NE(ret, HC_SUCCESS);
1720 }
1721 
1722 class GmIsDeviceInGroupTest : public testing::Test {
1723 public:
1724     static void SetUpTestCase();
1725     static void TearDownTestCase();
1726     void SetUp();
1727     void TearDown();
1728 };
1729 
SetUpTestCase()1730 void GmIsDeviceInGroupTest::SetUpTestCase() {}
TearDownTestCase()1731 void GmIsDeviceInGroupTest::TearDownTestCase() {}
1732 
SetUp()1733 void GmIsDeviceInGroupTest::SetUp()
1734 {
1735     int ret = InitDeviceAuthService();
1736     EXPECT_EQ(ret, HC_SUCCESS);
1737 }
1738 
TearDown()1739 void GmIsDeviceInGroupTest::TearDown()
1740 {
1741     DestroyDeviceAuthService();
1742 }
1743 
1744 HWTEST_F(GmIsDeviceInGroupTest, GmIsDeviceInGroupTest001, TestSize.Level0)
1745 {
1746     const DeviceGroupManager *gm = GetGmInstance();
1747     ASSERT_NE(gm, nullptr);
1748     bool ret = gm->isDeviceInGroup(DEFAULT_OS_ACCOUNT, nullptr, TEST_GROUP_ID, TEST_AUTH_ID);
1749     ASSERT_EQ(ret, false);
1750 }
1751 
1752 HWTEST_F(GmIsDeviceInGroupTest, GmIsDeviceInGroupTest002, TestSize.Level0)
1753 {
1754     const DeviceGroupManager *gm = GetGmInstance();
1755     ASSERT_NE(gm, nullptr);
1756     bool ret = gm->isDeviceInGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, nullptr, TEST_AUTH_ID);
1757     ASSERT_EQ(ret, false);
1758 }
1759 
1760 HWTEST_F(GmIsDeviceInGroupTest, GmIsDeviceInGroupTest003, TestSize.Level0)
1761 {
1762     const DeviceGroupManager *gm = GetGmInstance();
1763     ASSERT_NE(gm, nullptr);
1764     bool ret = gm->isDeviceInGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID, nullptr);
1765     ASSERT_EQ(ret, false);
1766 }
1767 
1768 HWTEST_F(GmIsDeviceInGroupTest, GmIsDeviceInGroupTest004, TestSize.Level0)
1769 {
1770     const DeviceGroupManager *gm = GetGmInstance();
1771     ASSERT_NE(gm, nullptr);
1772     bool ret = gm->isDeviceInGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID, TEST_AUTH_ID);
1773     ASSERT_EQ(ret, true);
1774 }
1775 
1776 HWTEST_F(GmIsDeviceInGroupTest, GmIsDeviceInGroupTest005, TestSize.Level0)
1777 {
1778     const DeviceGroupManager *gm = GetGmInstance();
1779     ASSERT_NE(gm, nullptr);
1780     bool ret = gm->isDeviceInGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID2, TEST_GROUP_ID2, TEST_AUTH_ID);
1781     ASSERT_NE(ret, true);
1782 }
1783 
1784 HWTEST_F(GmIsDeviceInGroupTest, GmIsDeviceInGroupTest006, TestSize.Level0)
1785 {
1786     const DeviceGroupManager *gm = GetGmInstance();
1787     ASSERT_NE(gm, nullptr);
1788     bool ret = gm->isDeviceInGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID4, TEST_AUTH_ID);
1789     ASSERT_EQ(ret, false);
1790 }
1791 }
1792