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 <gtest/gtest.h>
17 #include <thread>
18
19 #include "accesstoken_kit.h"
20 #include "distributed_object.h"
21 #include "distributed_object_impl.h"
22 #include "distributed_objectstore.h"
23 #include "distributed_objectstore_impl.h"
24 #include "flat_object_storage_engine.h"
25 #include "flat_object_store.h"
26 #include "mock_flat_object_watcher.h"
27 #include "mock_object_watcher.h"
28 #include "nativetoken_kit.h"
29 #include "object_storage_engine.h"
30 #include "objectstore_errors.h"
31 #include "token_setproc.h"
32
33 using namespace testing::ext;
34 using namespace OHOS::ObjectStore;
35 using namespace OHOS::Security::AccessToken;
36 namespace {
37 // object service error code
38 enum Status : int32_t {
39 OBJECT_SUCCESS,
40 OBJECT_DBSTATUS_ERROR,
41 OBJECT_INNER_ERROR,
42 OBJECT_PERMISSION_DENIED,
43 OBJECT_STORE_NOT_FOUND
44 };
45 constexpr static double SALARY = 100.5;
46 class TableWatcherImpl : public TableWatcher {
47 public:
TableWatcherImpl(const std::string & sessionId)48 explicit TableWatcherImpl(const std::string &sessionId) : TableWatcher(sessionId) {}
49 void OnChanged(
50 const std::string &sessionid, const std::vector<std::string> &changedData, bool enableTransfer) override;
51 virtual ~TableWatcherImpl();
52 };
53
~TableWatcherImpl()54 TableWatcherImpl::~TableWatcherImpl() {}
OnChanged(const std::string & sessionid,const std::vector<std::string> & changedData,bool enableTransfer)55 void TableWatcherImpl::OnChanged(
56 const std::string &sessionid, const std::vector<std::string> &changedData, bool enableTransfer) {}
57
58 class StatusNotifierImpl : public StatusWatcher {
59 public:
60 void OnChanged(
61 const std::string &sessionId, const std::string &networkId, const std::string &onlineStatus) override;
62 virtual ~StatusNotifierImpl();
63 };
~StatusNotifierImpl()64 StatusNotifierImpl::~StatusNotifierImpl() {}
65
OnChanged(const std::string & sessionId,const std::string & networkId,const std::string & onlineStatus)66 void StatusNotifierImpl::OnChanged(const std::string &sessionId,
67 const std::string &networkId,
68 const std::string &onlineStatus)
69 {
70 }
71
GrantPermissionNative()72 void GrantPermissionNative()
73 {
74 const char **perms = new const char *[2];
75 perms[0] = "ohos.permission.DISTRIBUTED_DATASYNC";
76 perms[1] = "ohos.permission.DISTRIBUTED_SOFTBUS_CENTER";
77 TokenInfoParams infoInstance = {
78 .dcapsNum = 0,
79 .permsNum = 2,
80 .aclsNum = 0,
81 .dcaps = nullptr,
82 .perms = perms,
83 .acls = nullptr,
84 .processName = "distributed_object",
85 .aplStr = "system_basic",
86 };
87 uint64_t tokenId = GetAccessTokenId(&infoInstance);
88 SetSelfTokenID(tokenId);
89 AccessTokenKit::ReloadNativeTokenInfo();
90 }
91
92 class NativeObjectStoreTest : public testing::Test {
93 public:
94 static void SetUpTestCase(void);
95 static void TearDownTestCase(void);
96 void SetUp();
97 void TearDown();
98 };
99
SetUpTestCase(void)100 void NativeObjectStoreTest::SetUpTestCase(void)
101 {
102 // input testsuit setup step,setup invoked before all testcases
103 }
104
TearDownTestCase(void)105 void NativeObjectStoreTest::TearDownTestCase(void)
106 {
107 // input testsuit teardown step,teardown invoked after all testcases
108 }
109
SetUp(void)110 void NativeObjectStoreTest::SetUp(void)
111 {
112 // input testcase setup step,setup invoked before each testcases
113 GrantPermissionNative();
114 }
115
TearDown(void)116 void NativeObjectStoreTest::TearDown(void)
117 {
118 // input testcase teardown step,teardown invoked after each testcases
119 }
120
121 /**
122 * @tc.name: DistributedObjectStore_Create_Destroy_001
123 * @tc.desc: test Create DistributedObject and Destroy DistrbutedObject
124 * @tc.type: FUNC
125 */
126 HWTEST_F(NativeObjectStoreTest, DistributedObjectStore_Create_Destroy_001, TestSize.Level1)
127 {
128 std::string bundleName = "default";
129 std::string sessionId = "123456";
130 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
131 EXPECT_NE(nullptr, objectStore);
132
133 DistributedObject *object = objectStore->CreateObject(sessionId);
134 EXPECT_NE(nullptr, object);
135
136 uint32_t ret = objectStore->DeleteObject(sessionId);
137 EXPECT_EQ(SUCCESS, ret);
138 }
139
140 /**
141 * @tc.name: DistributedObjectStore_Create_Destroy_002
142 * @tc.desc: test Create DistributedObject and Destroy DistrbutedObject
143 * @tc.type: FUNC
144 */
145 HWTEST_F(NativeObjectStoreTest, DistributedObjectStore_Create_Destroy_002, TestSize.Level1)
146 {
147 std::string sessionId = "123456";
148
149 auto objectStore = new DistributedObjectStoreImpl(nullptr);
150 DistributedObject *object = objectStore->CreateObject(sessionId);
151 EXPECT_EQ(nullptr, object);
152 delete objectStore;
153 }
154
155 /**
156 * @tc.name: DistributedObjectStore_Create_Destroy_003
157 * @tc.desc: test Create DistributedObject and Destroy DistrbutedObject
158 * @tc.type: FUNC
159 */
160 HWTEST_F(NativeObjectStoreTest, DistributedObjectStore_Create_Destroy_003, TestSize.Level1)
161 {
162 std::string bundleName = "default";
163 std::string sessionId = "123456";
164 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
165 EXPECT_NE(nullptr, objectStore);
166
167 DistributedObject *object = objectStore->CreateObject(sessionId);
168 EXPECT_NE(nullptr, object);
169
170 DistributedObject *object2 = objectStore->CreateObject(sessionId);
171 EXPECT_EQ(nullptr, object2);
172
173 uint32_t ret = objectStore->DeleteObject(sessionId);
174 EXPECT_EQ(SUCCESS, ret);
175 }
176
177 /**
178 * @tc.name: DistributedObjectStore_Create_Destroy_004
179 * @tc.desc: test Create DistributedObject and Destroy DistrbutedObject
180 * @tc.type: FUNC
181 */
182 HWTEST_F(NativeObjectStoreTest, DistributedObjectStore_Create_Destroy_004, TestSize.Level1)
183 {
184 std::string bundleName = "default";
185 std::string sessionId = "123456";
186 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
187 EXPECT_NE(nullptr, objectStore);
188
189 uint32_t status = -1;
190 DistributedObject *object = objectStore->CreateObject(sessionId, status);
191 EXPECT_NE(nullptr, object);
192 EXPECT_EQ(SUCCESS, status);
193
194 uint32_t ret = objectStore->DeleteObject(sessionId);
195 EXPECT_EQ(SUCCESS, ret);
196 }
197
198 /**
199 * @tc.name: DistributedObjectStoreImpl_CreateObject_001
200 * @tc.desc: test Create DistributedObjectStoreImpl
201 * @tc.type: FUNC
202 */
203 HWTEST_F(NativeObjectStoreTest, DistributedObjectStoreImpl_CreateObject_001, TestSize.Level1)
204 {
205 std::string bundleName = "default";
206 std::string sessionId = "123456";
207 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
208 EXPECT_NE(nullptr, objectStore);
209
210 DistributedObject *object = objectStore->CreateObject("");
211 EXPECT_EQ(nullptr, object);
212 }
213
214 /**
215 * @tc.name: DistributedObjectStoreImpl_CreateObject_002
216 * @tc.desc: test Create DistributedObjectStoreImpl
217 * @tc.type: FUNC
218 */
219 HWTEST_F(NativeObjectStoreTest, DistributedObjectStoreImpl_CreateObject_002, TestSize.Level1)
220 {
221 std::string sessionId = "123456";
222 auto objectStore = DistributedObjectStoreImpl(nullptr);
223 uint32_t status = -1;
224 DistributedObject *object = objectStore.CreateObject(sessionId, status);
225 EXPECT_EQ(nullptr, object);
226 EXPECT_EQ(ERR_NULL_OBJECTSTORE, status);
227
228 status = objectStore.DeleteObject(sessionId);
229 EXPECT_EQ(ERR_NULL_OBJECTSTORE, status);
230 }
231
232 /**
233 * @tc.name: DistributedObjectStoreImpl_CreateObject_003
234 * @tc.desc: test Create DistributedObjectStoreImpl
235 * @tc.type: FUNC
236 */
237 HWTEST_F(NativeObjectStoreTest, DistributedObjectStoreImpl_CreateObject_003, TestSize.Level1)
238 {
239 std::string bundleName = "default";
240 std::string sessionId = "";
241 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
242 EXPECT_NE(nullptr, objectStore);
243
244 uint32_t status = -1;
245 DistributedObject *object = objectStore->CreateObject(sessionId, status);
246 EXPECT_EQ(nullptr, object);
247 EXPECT_EQ(ERR_INVALID_ARGS, status);
248
249 status = objectStore->DeleteObject(sessionId);
250 EXPECT_EQ(ERR_DB_NOT_EXIST, status);
251 }
252
253 /**
254 * @tc.name: DistributedObjectStoreImpl_Get_001
255 * @tc.desc: test DistributedObjectStoreImpl Get
256 * @tc.type: FUNC
257 */
258 HWTEST_F(NativeObjectStoreTest, DistributedObjectStoreImpl_Get_001, TestSize.Level1)
259 {
260 std::string bundleName = "default";
261 std::string sessionId = "sessionId";
262 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
263 EXPECT_NE(nullptr, objectStore);
264
265 DistributedObject *object = objectStore->CreateObject(sessionId);
266 EXPECT_NE(nullptr, object);
267
268 DistributedObject *Object1 = nullptr;
269 uint32_t status = objectStore->Get("", &Object1);
270 EXPECT_EQ(ERR_GET_OBJECT, status);
271
272 status = objectStore->DeleteObject(sessionId);
273 EXPECT_EQ(SUCCESS, status);
274 }
275
276 /**
277 * @tc.name: DistributedObjectStoreImpl_Watch_001
278 * @tc.desc: test DistributedObjectStoreImpl Watch
279 * @tc.type: FUNC
280 */
281 HWTEST_F(NativeObjectStoreTest, DistributedObjectStoreImpl_Watch_001, TestSize.Level1)
282 {
283 std::string bundleName = "default";
284 std::string sessionId = "sessionId";
285 auto objectStore = new DistributedObjectStoreImpl(nullptr);
286
287 std::shared_ptr<MockObjectWatcher> watcher = std::make_shared<MockObjectWatcher>();
288 uint32_t status = objectStore->Watch(nullptr, watcher);
289 EXPECT_EQ(ERR_NULL_OBJECT, status);
290
291 auto flatObjectStore = new FlatObjectStore(bundleName);
292 auto object = new DistributedObjectImpl(sessionId, flatObjectStore);
293
294 status = objectStore->Watch(object, watcher);
295 EXPECT_EQ(ERR_NULL_OBJECTSTORE, status);
296
297 status = objectStore->UnWatch(object);
298 EXPECT_EQ(ERR_NULL_OBJECTSTORE, status);
299 delete objectStore;
300 delete flatObjectStore;
301 delete object;
302 }
303
304 /**
305 * @tc.name: DistributedObjectStoreImpl_Watch_002
306 * @tc.desc: test DistributedObjectStoreImpl Watch
307 * @tc.type: FUNC
308 */
309 HWTEST_F(NativeObjectStoreTest, DistributedObjectStoreImpl_Watch_002, TestSize.Level1)
310 {
311 std::string bundleName = "default";
312 std::string sessionId = "sessionId";
313 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
314 EXPECT_NE(nullptr, objectStore);
315
316 DistributedObject *object = objectStore->CreateObject(sessionId);
317 EXPECT_NE(nullptr, object);
318
319 std::shared_ptr<MockObjectWatcher> watcher = std::make_shared<MockObjectWatcher>();
320 uint32_t status = objectStore->Watch(object, watcher);
321 EXPECT_EQ(SUCCESS, status);
322
323 status = objectStore->Watch(object, watcher);
324 EXPECT_EQ(ERR_EXIST, status);
325
326 std::string bundleName1 = "default1";
327 std::string sessionId1 = "sessionId1";
328 auto flatObjectStore = new FlatObjectStore(bundleName1);
329 auto object1 = new DistributedObjectImpl(sessionId1, flatObjectStore);
330 status = objectStore->Watch(object1, watcher);
331 EXPECT_EQ(ERR_DB_NOT_EXIST, status);
332
333 status = objectStore->UnWatch(object1);
334 EXPECT_EQ(ERR_DB_NOT_EXIST, status);
335
336 status = objectStore->UnWatch(object);
337 EXPECT_EQ(SUCCESS, status);
338
339 status = objectStore->DeleteObject(sessionId);
340 EXPECT_EQ(SUCCESS, status);
341 delete flatObjectStore;
342 delete object1;
343 }
344
345 /**
346 * @tc.name: DistributedObjectStore_Get_001
347 * @tc.desc: test DistributedObjectStore Get.
348 * @tc.type: FUNC
349 */
350 HWTEST_F(NativeObjectStoreTest, DistributedObjectStore_Get_001, TestSize.Level1)
351 {
352 std::string bundleName = "default";
353 std::string sessionId = "123456";
354 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
355 EXPECT_NE(nullptr, objectStore);
356
357 DistributedObject *object = objectStore->CreateObject(sessionId);
358 EXPECT_NE(nullptr, object);
359
360 DistributedObject *object2 = nullptr;
361 uint32_t ret = objectStore->Get(sessionId, &object2);
362 EXPECT_EQ(SUCCESS, ret);
363 EXPECT_EQ(object, object2);
364
365 ret = objectStore->DeleteObject(sessionId);
366 EXPECT_EQ(SUCCESS, ret);
367 }
368
369 /**
370 * @tc.name: DistributedObjectStore_Watch_UnWatch_001
371 * @tc.desc: test DistributedObjectStore Watch and UnWatch.
372 * @tc.type: FUNC
373 */
374 HWTEST_F(NativeObjectStoreTest, DistributedObjectStore_Watch_UnWatch_001, TestSize.Level1)
375 {
376 std::string bundleName = "default";
377 std::string sessionId = "123456";
378 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
379 EXPECT_NE(nullptr, objectStore);
380
381 DistributedObject *object = objectStore->CreateObject(sessionId);
382 EXPECT_NE(nullptr, object);
383
384 auto watcherPtr = std::shared_ptr<ObjectWatcher>();
385 uint32_t ret = objectStore->Watch(object, watcherPtr);
386 EXPECT_EQ(SUCCESS, ret);
387
388 ret = objectStore->UnWatch(object);
389 EXPECT_EQ(SUCCESS, ret);
390
391 ret = objectStore->DeleteObject(sessionId);
392 EXPECT_EQ(SUCCESS, ret);
393 }
394
395 /**
396 * @tc.name: DistributedObjectStore_SetStatusNotifier_001
397 * @tc.desc: test DistributedObjectStore SetStatusNotifier.
398 * @tc.type: FUNC
399 */
400 HWTEST_F(NativeObjectStoreTest, DistributedObjectStore_SetStatusNotifier_001, TestSize.Level1)
401 {
402 std::string bundleName = "default";
403 std::string sessionId = "123456";
404 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
405 EXPECT_NE(nullptr, objectStore);
406 DistributedObject *object = objectStore->CreateObject(sessionId);
407 EXPECT_NE(nullptr, object);
408
409 auto notifierPtr = std::shared_ptr<StatusNotifier>();
410 uint32_t ret = objectStore->SetStatusNotifier(notifierPtr);
411 EXPECT_EQ(ret, 0);
412
413 objectStore->NotifyCachedStatus(sessionId);
414 ret = objectStore->DeleteObject(sessionId);
415 EXPECT_EQ(ret, 0);
416 }
417
418 /**
419 * @tc.name: DistributedObject_Double_001
420 * @tc.desc: test DistributedObjectStore PutDouble.
421 * @tc.type: FUNC
422 */
423 HWTEST_F(NativeObjectStoreTest, DistributedObject_Double_001, TestSize.Level1)
424 {
425 std::string bundleName = "default";
426 std::string sessionId = "123456";
427 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
428 EXPECT_NE(nullptr, objectStore);
429 DistributedObject *object = objectStore->CreateObject(sessionId);
430 EXPECT_NE(nullptr, object);
431
432 uint32_t ret = object->PutDouble("salary", SALARY);
433 EXPECT_EQ(ret, 0);
434
435 double value = 0.0;
436 object->GetDouble("salary", value);
437 EXPECT_EQ(ret, 0);
438 EXPECT_EQ(value, SALARY);
439
440 ret = objectStore->DeleteObject(sessionId);
441 EXPECT_EQ(ret, 0);
442 }
443
444 /**
445 * @tc.name: DistributedObject_GetDouble_001
446 * @tc.desc: test DistributedObjectStore GetDouble.
447 * @tc.type: FUNC
448 */
449 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetDouble_001, TestSize.Level1)
450 {
451 std::string bundleName = "default";
452 std::string sessionId = "123456";
453 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
454 EXPECT_NE(nullptr, objectStore);
455 DistributedObject *object = objectStore->CreateObject(sessionId);
456 EXPECT_NE(nullptr, object);
457
458 double value = 0.0;
459 uint32_t ret = object->GetDouble("salary", value);
460 EXPECT_EQ(ret, DistributedDB::DBStatus::NOT_FOUND);
461 EXPECT_EQ(value, 0.0);
462
463 ret = objectStore->DeleteObject(sessionId);
464 EXPECT_EQ(ret, 0);
465 }
466
467 /**
468 * @tc.name: DistributedObject_Boolean_001
469 * @tc.desc: test DistributedObjectStore PutBoolean.
470 * @tc.type: FUNC
471 */
472 HWTEST_F(NativeObjectStoreTest, DistributedObject_Boolean_001, TestSize.Level1)
473 {
474 std::string bundleName = "default";
475 std::string sessionId = "123456";
476 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
477 EXPECT_NE(nullptr, objectStore);
478 DistributedObject *object = objectStore->CreateObject(sessionId);
479 EXPECT_NE(nullptr, object);
480
481 uint32_t ret = object->PutBoolean("isTrue", true);
482 EXPECT_EQ(SUCCESS, ret);
483
484 bool value = false;
485 ret = object->GetBoolean("isTrue", value);
486 EXPECT_EQ(SUCCESS, ret);
487 EXPECT_EQ(true, value);
488
489 ret = objectStore->DeleteObject(sessionId);
490 EXPECT_EQ(SUCCESS, ret);
491 }
492
493 /**
494 * @tc.name: DistributedObject_GetBoolean_001
495 * @tc.desc: test DistributedObjectStore GetBoolean.
496 * @tc.type: FUNC
497 */
498 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetBoolean_001, TestSize.Level1)
499 {
500 std::string bundleName = "default";
501 std::string sessionId = "123456";
502 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
503 EXPECT_NE(nullptr, objectStore);
504 DistributedObject *object = objectStore->CreateObject(sessionId);
505 EXPECT_NE(nullptr, object);
506
507 bool value = false;
508 uint32_t ret = object->GetBoolean("isTrue", value);
509 EXPECT_EQ(DistributedDB::DBStatus::NOT_FOUND, ret);
510 EXPECT_EQ(false, value);
511
512 ret = objectStore->DeleteObject(sessionId);
513 EXPECT_EQ(SUCCESS, ret);
514 }
515
516 /**
517 * @tc.name: DistributedObject_String_001
518 * @tc.desc: test DistributedObjectStore String.
519 * @tc.type: FUNC
520 */
521 HWTEST_F(NativeObjectStoreTest, DistributedObject_String_001, TestSize.Level1)
522 {
523 std::string bundleName = "default";
524 std::string sessionId = "123456";
525 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
526 EXPECT_NE(nullptr, objectStore);
527 DistributedObject *object = objectStore->CreateObject(sessionId);
528 EXPECT_NE(nullptr, object);
529
530 uint32_t ret = object->PutString("name", "zhangsan");
531 EXPECT_EQ(SUCCESS, ret);
532
533 std::string value = "";
534 ret = object->GetString("name", value);
535 EXPECT_EQ(SUCCESS, ret);
536 EXPECT_EQ(value, "zhangsan");
537
538 ret = objectStore->DeleteObject(sessionId);
539 EXPECT_EQ(SUCCESS, ret);
540 }
541
542 /**
543 * @tc.name: DistributedObject_GetString_001
544 * @tc.desc: test DistributedObjectStore GetString.
545 * @tc.type: FUNC
546 */
547 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetString_001, TestSize.Level1)
548 {
549 std::string bundleName = "default";
550 std::string sessionId = "123456";
551 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
552 EXPECT_NE(nullptr, objectStore);
553 DistributedObject *object = objectStore->CreateObject(sessionId);
554 EXPECT_NE(nullptr, object);
555
556 std::string value = "";
557 uint32_t ret = object->GetString("name", value);
558 EXPECT_EQ(DistributedDB::DBStatus::NOT_FOUND, ret);
559 EXPECT_EQ(value, "");
560
561 ret = objectStore->DeleteObject(sessionId);
562 EXPECT_EQ(SUCCESS, ret);
563 }
564
565 /**
566 * @tc.name: DistributedObject_GetSessionId_001
567 * @tc.desc: test DistributedObjectStore GetSessionId.
568 * @tc.type: FUNC
569 */
570 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetSessionId_001, TestSize.Level1)
571 {
572 std::string bundleName = "default";
573 std::string sessionId = "123456";
574 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
575 EXPECT_NE(nullptr, objectStore);
576 DistributedObject *object = objectStore->CreateObject(sessionId);
577 EXPECT_NE(nullptr, object);
578 std::string getSessionId = object->GetSessionId();
579 EXPECT_EQ(sessionId, getSessionId);
580 uint32_t ret = objectStore->DeleteObject(sessionId);
581 EXPECT_EQ(SUCCESS, ret);
582 }
583
584 /**
585 * @tc.name: DistributedObject_PutComplex_001
586 * @tc.desc: test DistributedObjectStore PutComplex.
587 * @tc.type: FUNC
588 */
589 HWTEST_F(NativeObjectStoreTest, DistributedObject_PutComplex_001, TestSize.Level1)
590 {
591 std::string bundleName = "default";
592 std::string sessionId = "123456";
593 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
594 EXPECT_NE(nullptr, objectStore);
595 DistributedObject *object = objectStore->CreateObject(sessionId);
596 EXPECT_NE(nullptr, object);
597
598 std::vector<uint8_t> value = {'z', 'h'};
599 uint32_t ret = object->PutComplex("name", value);
600 EXPECT_EQ(SUCCESS, ret);
601 ret = objectStore->DeleteObject(sessionId);
602 EXPECT_EQ(SUCCESS, ret);
603 }
604
605 /**
606 * @tc.name: DistributedObject_GetComplex_001
607 * @tc.desc: test DistributedObjectStore GetComplex.
608 * @tc.type: FUNC
609 */
610 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetComplex_001, TestSize.Level1)
611 {
612 std::string bundleName = "default";
613 std::string sessionId = "123456";
614 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
615 EXPECT_NE(nullptr, objectStore);
616 DistributedObject *object = objectStore->CreateObject(sessionId);
617 EXPECT_NE(nullptr, object);
618
619 std::vector<uint8_t> value = {'z', 'h'};
620 uint32_t ret = object->PutComplex("name", value);
621 EXPECT_EQ(SUCCESS, ret);
622 ret = object->GetComplex("name", value);
623 EXPECT_EQ(SUCCESS, ret);
624 ret = objectStore->DeleteObject(sessionId);
625 EXPECT_EQ(SUCCESS, ret);
626 }
627
628 /**
629 * @tc.name: DistributedObject_GetComplex_002
630 * @tc.desc: test DistributedObjectStore GetComplex.
631 * @tc.type: FUNC
632 */
633 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetComplex_002, TestSize.Level1)
634 {
635 std::string bundleName = "default";
636 std::string sessionId = "123456";
637 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
638 EXPECT_NE(nullptr, objectStore);
639 DistributedObject *object = objectStore->CreateObject(sessionId);
640 EXPECT_NE(nullptr, object);
641
642 std::vector<uint8_t> value = {'z', 'h'};
643 uint32_t ret = object->GetComplex("name", value);
644 EXPECT_EQ(DistributedDB::DBStatus::NOT_FOUND, ret);
645 ret = objectStore->DeleteObject(sessionId);
646 EXPECT_EQ(SUCCESS, ret);
647 }
648
649 /**
650 * @tc.name: DistributedObject_SetAsset_001
651 * @tc.desc: test DistributedObjectStore SetAsset.
652 * @tc.type: FUNC
653 */
654 HWTEST_F(NativeObjectStoreTest, DistributedObject_SetAsset_001, TestSize.Level1)
655 {
656 std::string bundleName = "default";
657 std::string sessionId = "123456";
658 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
659 EXPECT_NE(nullptr, objectStore);
660 DistributedObject *object = objectStore->CreateObject(sessionId);
661 EXPECT_NE(nullptr, object);
662
663 uint32_t ret = object->PutString("attachment.name", "1.txt");
664 EXPECT_EQ(SUCCESS, ret);
665
666 std::string value;
667 ret = object->GetString("attachment.name", value);
668 EXPECT_EQ(SUCCESS, ret);
669 EXPECT_EQ(value, "1.txt");
670
671 std::string deviceId;
672 ret = object->GetString("__deviceId", deviceId);
673 EXPECT_EQ(SUCCESS, ret);
674 EXPECT_FALSE(deviceId.empty());
675
676 ret = objectStore->DeleteObject(sessionId);
677 EXPECT_EQ(SUCCESS, ret);
678 }
679
680 /**
681 * @tc.name: DistributedObject_TestSetSessionId_001
682 * @tc.desc: test DistributedObjectStore TestSetSessionId.
683 * @tc.type: FUNC
684 */
685 HWTEST_F(NativeObjectStoreTest, DistributedObject_TestSetSessionId_001, TestSize.Level1)
686 {
__anonf95d8e280202(std::string bundleName, std::string sessionId) 687 auto testSetSessionId = [] (std::string bundleName, std::string sessionId) {
688 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
689 EXPECT_NE(nullptr, objectStore);
690 DistributedObject *object = objectStore->CreateObject(sessionId);
691 EXPECT_NE(nullptr, object);
692
693 uint32_t ret = objectStore->DeleteObject(sessionId);
694 EXPECT_EQ(SUCCESS, ret);
695 };
696 std::thread t1(testSetSessionId, "default1", "session1");
697 std::thread t2(testSetSessionId, "default2", "session2");
698 std::thread t3(testSetSessionId, "default3", "session3");
699 t1.join();
700 t2.join();
701 t3.join();
702 }
703
704 /**
705 * @tc.name: DistributedObject_GetType_001
706 * @tc.desc: test DistributedObject GetType.
707 * @tc.type: FUNC
708 */
709 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetType_001, TestSize.Level1)
710 {
711 std::string bundleName = "default";
712 std::string sessionId = "123456";
713 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
714 EXPECT_NE(nullptr, objectStore);
715 DistributedObject *object = objectStore->CreateObject(sessionId);
716 EXPECT_NE(nullptr, object);
717
718 uint32_t ret = object->PutString("name", "zhangsan");
719 EXPECT_EQ(SUCCESS, ret);
720 Type type;
721 ret = object->GetType("name", type);
722 EXPECT_EQ(SUCCESS, ret);
723 EXPECT_EQ(TYPE_STRING, type);
724
725 ret = object->PutDouble("salary", SALARY);
726 EXPECT_EQ(SUCCESS, ret);
727 ret = object->GetType("salary", type);
728 EXPECT_EQ(SUCCESS, ret);
729 EXPECT_EQ(TYPE_DOUBLE, type);
730
731 ret = object->PutBoolean("isTrue", true);
732 EXPECT_EQ(SUCCESS, ret);
733 ret = object->GetType("isTrue", type);
734 EXPECT_EQ(SUCCESS, ret);
735 EXPECT_EQ(TYPE_BOOLEAN, type);
736
737 ret = objectStore->DeleteObject(sessionId);
738 EXPECT_EQ(SUCCESS, ret);
739 }
740
741 /**
742 * @tc.name: DistributedObject_GetType_002
743 * @tc.desc: test DistributedObject GetType.
744 * @tc.type: FUNC
745 */
746 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetType_002, TestSize.Level1)
747 {
748 std::string bundleName = "default";
749 std::string sessionId = "123456";
750 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
751 EXPECT_NE(nullptr, objectStore);
752 DistributedObject *object = objectStore->CreateObject(sessionId);
753 EXPECT_NE(nullptr, object);
754
755 Type type;
756 uint32_t ret = object->GetType("name", type);
757 EXPECT_EQ(DistributedDB::DBStatus::NOT_FOUND, ret);
758 EXPECT_EQ(TYPE_STRING, type);
759
760 ret = objectStore->DeleteObject(sessionId);
761 EXPECT_EQ(SUCCESS, ret);
762 }
763
764 /**
765 * @tc.name: DistributedObject_Save_RevokeSave_001
766 * @tc.desc: test DistributedObjectStore Save.
767 * @tc.type: FUNC
768 */
769 HWTEST_F(NativeObjectStoreTest, DistributedObject_Save_RevokeSave_001, TestSize.Level1)
770 {
771 std::string bundleName = "default";
772 std::string sessionId = "123456";
773 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
774 EXPECT_NE(nullptr, objectStore);
775 DistributedObject *object = objectStore->CreateObject(sessionId);
776 EXPECT_NE(nullptr, object);
777
778
779 uint32_t ret = object->PutString("name", "zhangsan");
780 EXPECT_EQ(SUCCESS, ret);
781 ret = object->PutDouble("salary", SALARY);
782 EXPECT_EQ(SUCCESS, ret);
783 ret = object->PutBoolean("isTrue", true);
784 EXPECT_EQ(SUCCESS, ret);
785
786 ret = object->Save("local");
787 EXPECT_EQ(SUCCESS, ret);
788 ret = object->RevokeSave();
789 EXPECT_EQ(SUCCESS, ret);
790
791 ret = objectStore->DeleteObject(sessionId);
792 EXPECT_EQ(SUCCESS, ret);
793 }
794
795 /**
796 * @tc.name: DistributedObject_Save_RevokeSave_002
797 * @tc.desc: test DistributedObjectStore Save.
798 * @tc.type: FUNC
799 */
800 HWTEST_F(NativeObjectStoreTest, DistributedObject_Save_RevokeSave_002, TestSize.Level1)
801 {
__anonf95d8e280302(std::string bundleName, std::string sessionId) 802 auto testSaveAndRevokeSave = [](std::string bundleName, std::string sessionId) {
803 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
804 EXPECT_NE(nullptr, objectStore);
805 DistributedObject *object = objectStore->CreateObject(sessionId);
806 EXPECT_NE(nullptr, object);
807
808 uint32_t ret = object->PutString("name", "zhangsan");
809 EXPECT_EQ(SUCCESS, ret);
810 ret = object->PutDouble("salary", SALARY);
811 EXPECT_EQ(SUCCESS, ret);
812 ret = object->PutBoolean("isTrue", true);
813 EXPECT_EQ(SUCCESS, ret);
814
815 ret = object->Save("local");
816 EXPECT_EQ(SUCCESS, ret);
817 ret = object->RevokeSave();
818 EXPECT_EQ(SUCCESS, ret);
819
820 ret = objectStore->DeleteObject(sessionId);
821 EXPECT_EQ(SUCCESS, ret);
822 };
823 std::thread t1(testSaveAndRevokeSave, "default1", "session1");
824 std::thread t2(testSaveAndRevokeSave, "default2", "session2");
825 std::thread t3(testSaveAndRevokeSave, "default3", "session3");
826 t1.join();
827 t2.join();
828 t3.join();
829 }
830
831 /**
832 * @tc.name: DistributedObject_Save_RevokeSave_003
833 * @tc.desc: test DistributedObjectStore Save.
834 * @tc.type: FUNC
835 */
836 HWTEST_F(NativeObjectStoreTest, DistributedObject_Save_RevokeSave_003, TestSize.Level1)
837 {
838 std::string bundleName = "default";
839 std::string sessionId = "123456";
840 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
841 EXPECT_NE(nullptr, objectStore);
842 DistributedObject *object = objectStore->CreateObject(sessionId);
843 EXPECT_NE(nullptr, object);
844
845 uint32_t ret = object->RevokeSave();
846 EXPECT_EQ(SUCCESS, ret);
847
848 ret = objectStore->DeleteObject(sessionId);
849 EXPECT_EQ(SUCCESS, ret);
850 }
851
852 /**
853 * @tc.name: DistributedObject_Open_001
854 * @tc.desc: test ObjectStorageEngine Open, calling Open repeatedly.
855 * @tc.type: FUNC
856 */
857 HWTEST_F(NativeObjectStoreTest, DistributedObject_Open_001, TestSize.Level1)
858 {
859 std::string bundleName = "default";
860 std::string sessionId = "123456";
861 ObjectStorageEngine *objectStorageEngine = new FlatObjectStorageEngine();
862 uint32_t ret = objectStorageEngine->Open(bundleName);
863 EXPECT_EQ(SUCCESS, ret);
864 ret = objectStorageEngine->Open(bundleName);
865 EXPECT_EQ(SUCCESS, ret);
866 ret = objectStorageEngine->CreateTable(sessionId);
867 EXPECT_EQ(SUCCESS, ret);
868 ret = objectStorageEngine->DeleteTable(sessionId);
869 EXPECT_EQ(SUCCESS, ret);
870 delete objectStorageEngine;
871 }
872
873 /**
874 * @tc.name: DistributedObject_CreateTable_001
875 * @tc.desc: test ObjectStorageEngine CreateTable.
876 * @tc.type: FUNC
877 */
878 HWTEST_F(NativeObjectStoreTest, DistributedObject_CreateTable_001, TestSize.Level1)
879 {
880 std::string bundleName = "default";
881 std::string sessionId = "123456";
882 ObjectStorageEngine *objectStorageEngine = new FlatObjectStorageEngine();
883 uint32_t ret = objectStorageEngine->Open(bundleName);
884 EXPECT_EQ(SUCCESS, ret);
885 ret = objectStorageEngine->CreateTable(sessionId);
886 EXPECT_EQ(SUCCESS, ret);
887 ret = objectStorageEngine->DeleteTable(sessionId);
888 EXPECT_EQ(SUCCESS, ret);
889 delete objectStorageEngine;
890 }
891
892 /**
893 * @tc.name: DistributedObject_CreateTable_002
894 * @tc.desc: test ObjectStorageEngine CreateTable, calling CreateTable() repeatedly.
895 * @tc.type: FUNC
896 */
897 HWTEST_F(NativeObjectStoreTest, DistributedObject_CreateTable_002, TestSize.Level1)
898 {
899 std::string bundleName = "default";
900 std::string sessionId = "123456";
901 ObjectStorageEngine *objectStorageEngine = new FlatObjectStorageEngine();
902 uint32_t ret = objectStorageEngine->Open(bundleName);
903 EXPECT_EQ(SUCCESS, ret);
904 ret = objectStorageEngine->CreateTable(sessionId);
905 EXPECT_EQ(SUCCESS, ret);
906 ret = objectStorageEngine->CreateTable(sessionId);
907 EXPECT_NE(SUCCESS, ret);
908 ret = objectStorageEngine->DeleteTable(sessionId);
909 EXPECT_EQ(SUCCESS, ret);
910 delete objectStorageEngine;
911 }
912
913 /**
914 * @tc.name: DistributedObject_CreateTable_003
915 * @tc.desc: test ObjectStorageEngine CreateTable, calling CreateTable after calling Close().
916 * @tc.type: FUNC
917 */
918 HWTEST_F(NativeObjectStoreTest, DistributedObject_CreateTable_003, TestSize.Level1)
919 {
920 std::string bundleName = "default";
921 std::string sessionId = "123456";
922 ObjectStorageEngine *objectStorageEngine = new FlatObjectStorageEngine();
923 uint32_t ret = objectStorageEngine->Open(bundleName);
924 EXPECT_EQ(SUCCESS, ret);
925 ret = objectStorageEngine->Close();
926 EXPECT_EQ(SUCCESS, ret);
927 ret = objectStorageEngine->CreateTable(sessionId);
928 EXPECT_NE(SUCCESS, ret);
929 delete objectStorageEngine;
930 }
931
932 /**
933 * @tc.name: DistributedObject_GetTable_001
934 * @tc.desc: test ObjectStorageEngine GetTable, not calling Open().
935 * @tc.type: FUNC
936 */
937 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetTable_001, TestSize.Level1)
938 {
939 std::string sessionId = "session01";
940 ObjectStorageEngine *objectStorageEngine = new FlatObjectStorageEngine();
941 std::map<std::string, Value> result = {};
942 uint32_t ret = objectStorageEngine->GetTable(sessionId, result);
943 EXPECT_NE(SUCCESS, ret);
944 delete objectStorageEngine;
945 }
946
947 /**
948 * @tc.name: DistributedObject_GetTable_002
949 * @tc.desc: test ObjectStorageEngine GetTable, calling Open(),but not calling CreateTable().
950 * @tc.type: FUNC
951 */
952 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetTable_002, TestSize.Level1)
953 {
954 std::string bundleName = "default02";
955 std::string sessionId = "session02";
956 ObjectStorageEngine *objectStorageEngine = new FlatObjectStorageEngine();
957 uint32_t ret = objectStorageEngine->Open(bundleName);
958 EXPECT_EQ(SUCCESS, ret);
959 std::map<std::string, Value> result = {};
960 ret = objectStorageEngine->GetTable(sessionId, result);
961 EXPECT_NE(SUCCESS, ret);
962 delete objectStorageEngine;
963 }
964
965 /**
966 * @tc.name: DistributedObject_GetTable_003
967 * @tc.desc: test ObjectStorageEngine GetTable, calling Open() and CreateTable(), but not calling UpdateItem().
968 * @tc.type: FUNC
969 */
970 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetTable_003, TestSize.Level1)
971 {
972 std::string bundleName = "default03";
973 std::string sessionId = "session03";
974 ObjectStorageEngine *objectStorageEngine = new FlatObjectStorageEngine();
975 uint32_t ret = objectStorageEngine->Open(bundleName);
976 EXPECT_EQ(SUCCESS, ret);
977 ret = objectStorageEngine->CreateTable(sessionId);
978 EXPECT_EQ(SUCCESS, ret);
979 std::map<std::string, Value> result = {};
980 ret = objectStorageEngine->GetTable(sessionId, result);
981 EXPECT_NE(SUCCESS, ret);
982 ret = objectStorageEngine->DeleteTable(sessionId);
983 EXPECT_EQ(SUCCESS, ret);
984 delete objectStorageEngine;
985 }
986
987 /**
988 * @tc.name: DistributedObject_GetTable_004
989 * @tc.desc: test ObjectStorageEngine GetTable.
990 * @tc.type: FUNC
991 */
992 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetTable_004, TestSize.Level1)
993 {
994 std::string bundleName = "default04";
995 std::string sessionId = "session04";
996 std::vector<uint8_t> value = { 1, 8 };
997 ObjectStorageEngine *objectStorageEngine = new FlatObjectStorageEngine();
998 uint32_t ret = objectStorageEngine->Open(bundleName);
999 EXPECT_EQ(SUCCESS, ret);
1000 ret = objectStorageEngine->CreateTable(sessionId);
1001 EXPECT_EQ(SUCCESS, ret);
1002 ret = objectStorageEngine->UpdateItem(sessionId, "age", value);
1003 EXPECT_EQ(SUCCESS, ret);
1004 std::map<std::string, Value> result = {};
1005 ret = objectStorageEngine->GetTable(sessionId, result);
1006 EXPECT_EQ(SUCCESS, ret);
1007 ret = objectStorageEngine->DeleteTable(sessionId);
1008 EXPECT_EQ(SUCCESS, ret);
1009 delete objectStorageEngine;
1010 }
1011
1012 /**
1013 * @tc.name: FlatObjectStore_UpdateItems_001
1014 * @tc.desc: test ObjectStorageEngine UpdateItems. input data is empty.
1015 * @tc.type: FUNC
1016 */
1017 HWTEST_F(NativeObjectStoreTest, DistributedObject_UpdateItems_001, TestSize.Level1)
1018 {
1019 std::string bundleName = "default06";
1020 std::string sessionId = "session06";
1021 ObjectStorageEngine *objectStorageEngine = new FlatObjectStorageEngine();
1022 uint32_t ret = objectStorageEngine->Open(bundleName);
1023 EXPECT_EQ(SUCCESS, ret);
1024 ret = objectStorageEngine->CreateTable(sessionId);
1025 EXPECT_EQ(SUCCESS, ret);
1026 std::map<std::string, std::vector<uint8_t>> data = {};
1027 ret = objectStorageEngine->UpdateItems(sessionId, data);
1028 EXPECT_NE(SUCCESS, ret);
1029 delete objectStorageEngine;
1030 }
1031
1032 /**
1033 * @tc.name: FlatObjectStore_UpdateItems_002
1034 * @tc.desc: test FlatObjectStore UpdateItems.
1035 * @tc.type: FUNC
1036 */
1037 HWTEST_F(NativeObjectStoreTest, FlatObjectStore_UpdateItems_002, TestSize.Level1)
1038 {
1039 std::string bundleName = "default07";
1040 std::string sessionId = "session07";
1041 std::vector<uint8_t> value = { 1, 8 };
1042 ObjectStorageEngine *objectStorageEngine = new FlatObjectStorageEngine();
1043 uint32_t ret = objectStorageEngine->Open(bundleName);
1044 EXPECT_EQ(SUCCESS, ret);
1045 ret = objectStorageEngine->CreateTable(sessionId);
1046 EXPECT_EQ(SUCCESS, ret);
1047 std::map<std::string, std::vector<uint8_t>> data = { { "age", value } };
1048 ret = objectStorageEngine->UpdateItems(sessionId, data);
1049 EXPECT_EQ(SUCCESS, ret);
1050 delete objectStorageEngine;
1051 }
1052
1053 /**
1054 * @tc.name: DistributedObject_OpenAndClose_001
1055 * @tc.desc: test FlatObjectStorageEngine OpenAndClose and Close when FlatObjectStorageEngine is not open.
1056 * @tc.type: FUNC
1057 */
1058 HWTEST_F(NativeObjectStoreTest, DistributedObject_OpenAndClose_001, TestSize.Level1)
1059 {
1060 std::string bundleName = "default07";
1061 FlatObjectStorageEngine *objectStorageEngine = new FlatObjectStorageEngine();
1062 uint32_t ret = objectStorageEngine->Open(bundleName);
1063 EXPECT_EQ(SUCCESS, ret);
1064 ret = objectStorageEngine->Close();
1065 EXPECT_EQ(SUCCESS, ret);
1066 objectStorageEngine->isOpened_ = false;
1067 ret = objectStorageEngine->Close();
1068 EXPECT_EQ(SUCCESS, ret);
1069 delete objectStorageEngine;
1070 }
1071
1072 /**
1073 * @tc.name: DistributedObject_NotifyChange_001
1074 * @tc.desc: test FlatObjectStorageEngine NotifyChange.
1075 * @tc.type: FUNC
1076 */
1077 HWTEST_F(NativeObjectStoreTest, DistributedObject_NotifyChange_001, TestSize.Level1)
1078 {
1079 std::string bundleName = "default07";
1080 std::string sessionId = "session07";
1081 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1082 uint32_t ret = storageEngine->Open(bundleName);
1083 ret = storageEngine->CreateTable(sessionId);
1084 EXPECT_EQ(SUCCESS, ret);
1085 std::map<std::string, std::vector<uint8_t>> filteredData;
1086 storageEngine->NotifyChange(sessionId, filteredData);
1087 ret = storageEngine->Close();
1088 EXPECT_EQ(SUCCESS, ret);
1089 }
1090
1091 /**
1092 * @tc.name: FlatObjectStore_CheckRetrieveCache_001
1093 * @tc.desc: test FlatObjectStore CheckRetrieveCache.
1094 * @tc.type: FUNC
1095 */
1096 HWTEST_F(NativeObjectStoreTest, FlatObjectStore_CheckRetrieveCache_001, TestSize.Level1)
1097 {
1098 std::string sessionId = "session05";
1099 std::string bundleName = "default07";
1100 std::shared_ptr<FlatObjectStore> flatObjectStore = std::make_shared<FlatObjectStore>(bundleName);
1101 uint32_t ret = flatObjectStore->CreateObject(sessionId);
1102 EXPECT_EQ(SUCCESS, ret);
1103 flatObjectStore->CheckRetrieveCache(sessionId);
1104 ret = flatObjectStore->Delete(sessionId);
1105 EXPECT_EQ(SUCCESS, ret);
1106 }
1107
1108 /**
1109 * @tc.name: FlatObjectStore_Delete_001
1110 * @tc.desc: test FlatObjectStore Delete. wrong sessionId
1111 * @tc.type: FUNC
1112 */
1113 HWTEST_F(NativeObjectStoreTest, FlatObjectStore_Delete_001, TestSize.Level1)
1114 {
1115 std::string sessionId = "session001";
1116 std::string bundleName = "default001";
1117 std::shared_ptr<FlatObjectStore> flatObjectStore = std::make_shared<FlatObjectStore>(bundleName);
1118 uint32_t ret = flatObjectStore->CreateObject(sessionId);
1119 EXPECT_EQ(SUCCESS, ret);
1120 sessionId = "session002";
1121 ret = flatObjectStore->Delete(sessionId);
1122 EXPECT_EQ(ERR_DB_NOT_EXIST, ret);
1123 }
1124
1125 /**
1126 * @tc.name: FlatObjectStore_Delete_002
1127 * @tc.desc: test FlatObjectStore Delete. wrong sessionId
1128 * @tc.type: FUNC
1129 */
1130 HWTEST_F(NativeObjectStoreTest, FlatObjectStore_Delete_002, TestSize.Level1)
1131 {
1132 std::string sessionId = "session001";
1133 std::string bundleName = "";
1134 std::shared_ptr<FlatObjectStore> flatObjectStore = std::make_shared<FlatObjectStore>(bundleName);
1135 uint32_t ret = flatObjectStore->CreateObject(sessionId);
1136 EXPECT_EQ(ERR_DB_GETKV_FAIL, ret);
1137 }
1138
1139 /**
1140 * @tc.name: FlatObjectStore_Watch_001
1141 * @tc.desc: test FlatObjectStore Watch. wrong sessionId
1142 * @tc.type: FUNC
1143 */
1144 HWTEST_F(NativeObjectStoreTest, FlatObjectStore_Watch_001, TestSize.Level1)
1145 {
1146 std::string sessionId = "session002";
1147 std::string bundleName = "default002";
1148 std::shared_ptr<FlatObjectStore> flatObjectStore = std::make_shared<FlatObjectStore>(bundleName);
1149 uint32_t ret = flatObjectStore->CreateObject(sessionId);
1150 EXPECT_EQ(SUCCESS, ret);
1151 sessionId = "session003";
1152 std::shared_ptr<MockFlatObjectWatcher> watcher = std::make_shared<MockFlatObjectWatcher>(sessionId);
1153 ret = flatObjectStore->Watch(sessionId, watcher);
1154 EXPECT_EQ(ERR_DB_NOT_EXIST, ret);
1155 }
1156
1157 /**
1158 * @tc.name: FlatObjectStore_UnWatch_001
1159 * @tc.desc: test FlatObjectStore UnWatch. wrong sessionId
1160 * @tc.type: FUNC
1161 */
1162 HWTEST_F(NativeObjectStoreTest, FlatObjectStore_UnWatch_001, TestSize.Level1)
1163 {
1164 std::string sessionId = "session003";
1165 std::string bundleName = "default003";
1166 std::shared_ptr<FlatObjectStore> flatObjectStore = std::make_shared<FlatObjectStore>(bundleName);
1167 uint32_t ret = flatObjectStore->CreateObject(sessionId);
1168 EXPECT_EQ(SUCCESS, ret);
1169 sessionId = "session004";
1170 std::shared_ptr<MockFlatObjectWatcher> watcher = std::make_shared<MockFlatObjectWatcher>(sessionId);
1171 ret = flatObjectStore->UnWatch(sessionId);
1172 EXPECT_EQ(ERR_DB_NOT_EXIST, ret);
1173 }
1174
1175 /**
1176 * @tc.name: FlatObjectStore_Save_001
1177 * @tc.desc: test FlatObjectStore Save. wrong sessionId
1178 * @tc.type: FUNC
1179 */
1180 HWTEST_F(NativeObjectStoreTest, FlatObjectStore_Save_001, TestSize.Level1)
1181 {
1182 std::string sessionId = "session004";
1183 std::string bundleName = "default004";
1184 std::string deviceId = "deviceId004";
1185 std::shared_ptr<FlatObjectStore> flatObjectStore = std::make_shared<FlatObjectStore>(bundleName);
1186 uint32_t ret = flatObjectStore->CreateObject(sessionId);
1187 EXPECT_EQ(SUCCESS, ret);
1188 sessionId = "session005";
1189 std::shared_ptr<MockFlatObjectWatcher> watcher = std::make_shared<MockFlatObjectWatcher>(sessionId);
1190 ret = flatObjectStore->Save(sessionId, deviceId);
1191 EXPECT_EQ(ERR_DB_NOT_EXIST, ret);
1192 }
1193
1194 /**
1195 * @tc.name: FlatObjectStore_OnComplete_001
1196 * @tc.desc: test FlatObjectStore OnComplete.
1197 * @tc.type: FUNC
1198 */
1199 HWTEST_F(NativeObjectStoreTest, FlatObjectStore_OnComplete_001, TestSize.Level1)
1200 {
1201 std::string bundleName = "default005";
1202 std::string sessionId = "session005";
1203 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1204 uint32_t ret = storageEngine->Open(bundleName);
1205 EXPECT_EQ(SUCCESS, ret);
1206 ret = storageEngine->CreateTable(sessionId);
1207 std::shared_ptr<StatusNotifierImpl> statusWatcher = std::make_shared<StatusNotifierImpl>();
1208 DistributedDB::DBStatus status = DistributedDB::DBStatus::OK;
1209 std::map<std::string, DistributedDB::DBStatus> devices = { { sessionId, status } };
1210 storageEngine->OnComplete(sessionId, devices, statusWatcher);
1211 ret = storageEngine->DeleteTable(sessionId);
1212 EXPECT_EQ(SUCCESS, ret);
1213 }
1214
1215 /**
1216 * @tc.name: CacheManager_Save_001
1217 * @tc.desc: test CacheManager Save.
1218 * @tc.type: FUNC
1219 */
1220 HWTEST_F(NativeObjectStoreTest, CacheManager_Save_001, TestSize.Level1)
1221 {
1222 std::string bundleName = "";
1223 std::string sessionId = "";
1224 std::string deviceId = "";
1225 std::map<std::string, std::vector<uint8_t>> objectData;
1226 CacheManager cacheManager;
1227 auto ret = cacheManager.Save(bundleName, sessionId, deviceId, objectData);
1228 EXPECT_EQ(OBJECT_PERMISSION_DENIED, ret);
1229 }
1230
1231 /**
1232 * @tc.name: CacheManager_RevokeSave_001
1233 * @tc.desc: test CacheManager RevokeSave.
1234 * @tc.type: FUNC
1235 */
1236 HWTEST_F(NativeObjectStoreTest, CacheManager_RevokeSave_001, TestSize.Level1)
1237 {
1238 std::string bundleName = "";
1239 std::string sessionId = "";
1240 CacheManager cacheManager;
1241 auto ret = cacheManager.RevokeSave(bundleName, sessionId);
1242 EXPECT_EQ(OBJECT_PERMISSION_DENIED, ret);
1243 }
1244
1245 /**
1246 * @tc.name: CacheManager_ResumeObject_001
1247 * @tc.desc: test CacheManager ResumeObject.
1248 * @tc.type: FUNC
1249 */
1250 HWTEST_F(NativeObjectStoreTest, CacheManager_ResumeObject_001, TestSize.Level1)
1251 {
1252 std::string bundleName = "";
1253 std::string sessionId = "";
1254 CacheManager cacheManager;
1255 std::function<void(const std::map<std::string, std::vector<uint8_t>> &data, bool allReady)> callback =
__anonf95d8e280402(const std::map<std::string, std::vector<uint8_t>> &data, bool allReady) 1256 [](const std::map<std::string, std::vector<uint8_t>> &data, bool allReady) {};
1257 auto ret = cacheManager.ResumeObject(bundleName, sessionId, callback);
1258 EXPECT_EQ(OBJECT_PERMISSION_DENIED, ret);
1259 }
1260
1261 /**
1262 * @tc.name: CacheManager_SubscribeDataChange_001
1263 * @tc.desc: test CacheManager SubscribeDataChange.
1264 * @tc.type: FUNC
1265 */
1266 HWTEST_F(NativeObjectStoreTest, CacheManager_SubscribeDataChange_001, TestSize.Level1)
1267 {
1268 std::string bundleName = "";
1269 std::string sessionId = "";
1270 CacheManager cacheManager;
1271 std::function<void(const std::map<std::string, std::vector<uint8_t>> &data, bool allReady)> callback =
__anonf95d8e280502(const std::map<std::string, std::vector<uint8_t>> &data, bool allReady) 1272 [](const std::map<std::string, std::vector<uint8_t>> &data, bool allReady) {};
1273 auto ret = cacheManager.SubscribeDataChange(bundleName, sessionId, callback);
1274 EXPECT_EQ(OBJECT_PERMISSION_DENIED, ret);
1275 }
1276
1277 /**
1278 * @tc.name: CacheManager_UnregisterDataChange_001
1279 * @tc.desc: test CacheManager UnregisterDataChange.
1280 * @tc.type: FUNC
1281 */
1282 HWTEST_F(NativeObjectStoreTest, CacheManager_UnregisterDataChange_001, TestSize.Level1)
1283 {
1284 std::string bundleName = "";
1285 std::string sessionId = "";
1286 CacheManager cacheManager;
1287 auto ret = cacheManager.UnregisterDataChange(bundleName, sessionId);
1288 EXPECT_EQ(OBJECT_PERMISSION_DENIED, ret);
1289 }
1290
1291 /**
1292 * @tc.name: CacheManager_IsContinue_001
1293 * @tc.desc: test CacheManager IsContinue.
1294 * @tc.type: FUNC
1295 */
1296 HWTEST_F(NativeObjectStoreTest, CacheManager_IsContinue_001, TestSize.Level1)
1297 {
1298 auto cacheManager = std::make_shared<CacheManager>();
1299 auto result = cacheManager->IsContinue();
1300 EXPECT_FALSE(result);
1301 }
1302
1303 /**
1304 * @tc.name: DistributedObject_NotifyCachedStatus_001
1305 * @tc.desc: test DistributedObjectStore NotifyCachedStatus.
1306 * @tc.type: FUNC
1307 */
1308 HWTEST_F(NativeObjectStoreTest, DistributedObject_NotifyCachedStatus_001, TestSize.Level1)
1309 {
1310 std::string bundleName = "default";
1311 std::string sessionId = "123456";
1312 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
1313 EXPECT_NE(nullptr, objectStore);
1314 uint32_t status = 0;
1315 DistributedObject *object = objectStore->CreateObject(sessionId, status);
1316 EXPECT_NE(nullptr, object);
1317 EXPECT_EQ(SUCCESS, status);
1318 objectStore->NotifyCachedStatus(sessionId);
1319 uint32_t ret = objectStore->DeleteObject(sessionId);
1320 EXPECT_EQ(SUCCESS, ret);
1321 }
1322
1323 /**
1324 * @tc.name: DistributedObject_UnWatch_001
1325 * @tc.desc: test DistributedObjectStore UnWatch, DistributedObject is nullptr.
1326 * @tc.type: FUNC
1327 */
1328 HWTEST_F(NativeObjectStoreTest, DistributedObject_UnWatch_001, TestSize.Level1)
1329 {
1330 std::string bundleName = "default";
1331 std::string sessionId = "123456";
1332 DistributedObjectStore *objectStore = DistributedObjectStore::GetInstance(bundleName);
1333 EXPECT_NE(nullptr, objectStore);
1334 DistributedObject *object = objectStore->CreateObject(sessionId);
1335 EXPECT_NE(nullptr, object);
1336 uint32_t ret = objectStore->UnWatch(nullptr);
1337 EXPECT_EQ(ERR_NULL_OBJECT, ret);
1338 ret = objectStore->DeleteObject(sessionId);
1339 EXPECT_EQ(SUCCESS, ret);
1340 }
1341
1342 /**
1343 * @tc.name: DistributedObject_CreateTable_004
1344 * @tc.desc: test FlatObjectStorageEngine CreateTable, sessionId is empty.
1345 * @tc.type: FUNC
1346 */
1347 HWTEST_F(NativeObjectStoreTest, DistributedObject_CreateTable_004, TestSize.Level1)
1348 {
1349 std::string bundleName = "default";
1350 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1351 storageEngine->Open(bundleName);
1352 uint32_t ret = storageEngine->CreateTable("");
1353 EXPECT_EQ(ERR_DB_GETKV_FAIL, ret);
1354 }
1355
1356 /**
1357 * @tc.name: DistributedObject_GetTable_005
1358 * @tc.desc: test FlatObjectStorageEngine GetTable, storageEngine is not open or sessionId is empty.
1359 * @tc.type: FUNC
1360 */
1361 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetTable_005, TestSize.Level1)
1362 {
1363 std::string bundleName = "default";
1364 std::string sessionId = "123456";
1365 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1366 storageEngine->Open(bundleName);
1367 storageEngine->CreateTable(sessionId);
1368 std::map<std::string, Value> tableResult;
1369 storageEngine->isOpened_ = false;
1370 uint32_t ret = storageEngine->GetTable(sessionId, tableResult);
1371 EXPECT_EQ(ERR_DB_NOT_INIT, ret);
1372 storageEngine->isOpened_ = true;
1373 ret = storageEngine->GetTable("", tableResult);
1374 EXPECT_EQ(ERR_DB_NOT_EXIST, ret);
1375 storageEngine->DeleteTable(sessionId);
1376 }
1377
1378 /**
1379 * @tc.name: DistributedObject_UpdateItem_003
1380 * @tc.desc: test FlatObjectStorageEngine UpdateItem, storageEngine is not open or error sessionid.
1381 * @tc.type: FUNC
1382 */
1383 HWTEST_F(NativeObjectStoreTest, DistributedObject_UpdateItem_001, TestSize.Level1)
1384 {
1385 std::string bundleName = "default";
1386 std::string sessionId = "123456";
1387 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1388 storageEngine->Open(bundleName);
1389 storageEngine->CreateTable(sessionId);
1390 storageEngine->isOpened_ = false;
1391 std::vector<uint8_t> value = { 1, 8 };
1392 uint32_t ret = storageEngine->UpdateItem(sessionId, "age", value);
1393 EXPECT_EQ(ERR_DB_NOT_INIT, ret);
1394 storageEngine->isOpened_ = true;
1395 ret = storageEngine->UpdateItem("123", "age", value);
1396 EXPECT_EQ(ERR_DB_NOT_EXIST, ret);
1397 storageEngine->DeleteTable(sessionId);
1398 }
1399
1400 /**
1401 * @tc.name: DistributedObject_UpdateItems_004
1402 * @tc.desc: test FlatObjectStorageEngine UpdateItems, storageEngine is not open or error sessionid.
1403 * @tc.type: FUNC
1404 */
1405 HWTEST_F(NativeObjectStoreTest, DistributedObject_UpdateItems_003, TestSize.Level1)
1406 {
1407 std::string bundleName = "default";
1408 std::string sessionId = "123456";
1409 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1410 storageEngine->Open(bundleName);
1411 storageEngine->CreateTable(sessionId);
1412 storageEngine->isOpened_ = false;
1413 std::vector<uint8_t> value = { 1, 8 };
1414 std::map<std::string, std::vector<uint8_t>> data = { { "age", value } };
1415 uint32_t ret = storageEngine->UpdateItems(sessionId, data);
1416 EXPECT_EQ(ERR_DB_NOT_INIT, ret);
1417
1418 storageEngine->isOpened_ = true;
1419 ret = storageEngine->UpdateItems("123", data);
1420 EXPECT_EQ(ERR_DB_NOT_EXIST, ret);
1421 storageEngine->DeleteTable(sessionId);
1422 }
1423
1424 /**
1425 * @tc.name: DistributedObject_DeleteTable_001
1426 * @tc.desc: test FlatObjectStorageEngine DeleteTable, storageEngine is not open or error sessionid.
1427 * @tc.type: FUNC
1428 */
1429 HWTEST_F(NativeObjectStoreTest, DistributedObject_DeleteTable_001, TestSize.Level1)
1430 {
1431 std::string bundleName = "default";
1432 std::string sessionId = "123456";
1433 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1434 storageEngine->Open(bundleName);
1435 storageEngine->CreateTable(sessionId);
1436 storageEngine->isOpened_ = false;
1437 uint32_t ret = storageEngine->DeleteTable(sessionId);
1438 EXPECT_EQ(ERR_DB_NOT_INIT, ret);
1439 storageEngine->isOpened_ = true;
1440 ret = storageEngine->DeleteTable("123");
1441 EXPECT_EQ(ERR_DB_NOT_EXIST, ret);
1442 storageEngine->DeleteTable(sessionId);
1443 }
1444
1445 /**
1446 * @tc.name: DistributedObject_GetItem_002
1447 * @tc.desc: test FlatObjectStorageEngine GetItem, storageEngine is not open or error key.
1448 * @tc.type: FUNC
1449 */
1450 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetItem_002, TestSize.Level1)
1451 {
1452 std::string bundleName = "default";
1453 std::string sessionId = "123456";
1454 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1455 storageEngine->Open(bundleName);
1456 storageEngine->CreateTable(sessionId);
1457 storageEngine->isOpened_ = false;
1458 std::vector<uint8_t> value = { 1, 8 };
1459 uint32_t ret = storageEngine->GetItem(sessionId, "", value);
1460 EXPECT_EQ(ERR_DB_NOT_INIT, ret);
1461 storageEngine->Open(bundleName);
1462 ret = storageEngine->DeleteTable(sessionId);
1463 EXPECT_EQ(SUCCESS, ret);
1464 }
1465
1466 /**
1467 * @tc.name: DistributedObject_GetItem_003
1468 * @tc.desc: test FlatObjectStorageEngine GetItem, error key.
1469 * @tc.type: FUNC
1470 */
1471 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetItem_003, TestSize.Level1)
1472 {
1473 std::string sessionId = "123456";
1474 std::string bundleName = "default";
1475 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1476 std::vector<uint8_t> value = { 1, 8 };
1477 storageEngine->Open(bundleName);
1478 uint32_t ret = storageEngine->GetItem(sessionId, "123", value);
1479 EXPECT_EQ(ERR_DB_NOT_EXIST, ret);
1480 }
1481
1482 /**
1483 * @tc.name: DistributedObject_RegisterObserver_001
1484 * @tc.desc: test FlatObjectStorageEngine RegisterObserver, storageEngine is not open.
1485 * @tc.type: FUNC
1486 */
1487 HWTEST_F(NativeObjectStoreTest, DistributedObject_RegisterObserver_001, TestSize.Level1)
1488 {
1489 std::string sessionId = "123456";
1490 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1491 storageEngine->isOpened_ = false;
1492 auto tableWatcherPtr = std::make_shared<TableWatcherImpl>(sessionId);
1493 uint32_t ret = storageEngine->RegisterObserver(sessionId, tableWatcherPtr);
1494 EXPECT_EQ(ERR_DB_NOT_INIT, ret);
1495 }
1496
1497 /**
1498 * @tc.name: DistributedObject_RegisterObserver_002
1499 * @tc.desc: test FlatObjectStorageEngine RegisterObserver, empty sessionId.
1500 * @tc.type: FUNC
1501 */
1502 HWTEST_F(NativeObjectStoreTest, DistributedObject_RegisterObserver_002, TestSize.Level1)
1503 {
1504 std::string bundleName = "default";
1505 std::string sessionId = "123456";
1506 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1507 storageEngine->Open(bundleName);
1508 storageEngine->CreateTable(sessionId);
1509 auto tableWatcherPtr = std::make_shared<TableWatcherImpl>(sessionId);
1510 uint32_t ret = storageEngine->RegisterObserver("", tableWatcherPtr);
1511 EXPECT_EQ(ERR_DB_NOT_EXIST, ret);
1512 ret = storageEngine->DeleteTable(sessionId);
1513 EXPECT_EQ(SUCCESS, ret);
1514 }
1515
1516 /**
1517 * @tc.name: DistributedObject_RegisterObserver_003
1518 * @tc.desc: test FlatObjectStorageEngine RegisterObserver, repeat RegisterObserver.
1519 * @tc.type: FUNC
1520 */
1521 HWTEST_F(NativeObjectStoreTest, DistributedObject_RegisterObserver_003, TestSize.Level1)
1522 {
1523 std::string bundleName = "default";
1524 std::string sessionId = "123456";
1525 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1526 storageEngine->Open(bundleName);
1527 storageEngine->CreateTable(sessionId);
1528 auto tableWatcherPtr = std::make_shared<TableWatcherImpl>(sessionId);
1529 // RegisterObserver observer already exist
1530 uint32_t ret = storageEngine->RegisterObserver(sessionId, tableWatcherPtr);
1531 EXPECT_EQ(SUCCESS, ret);
1532 storageEngine->RegisterObserver(sessionId, tableWatcherPtr);
1533 EXPECT_EQ(SUCCESS, ret);
1534 ret = storageEngine->DeleteTable(sessionId);
1535 EXPECT_EQ(SUCCESS, ret);
1536 }
1537
1538 /**
1539 * @tc.name: DistributedObject_UnRegisterObserver_001
1540 * @tc.desc: test FlatObjectStorageEngine UnRegisterObserver, storageEngine is not open.
1541 * @tc.type: FUNC
1542 */
1543 HWTEST_F(NativeObjectStoreTest, DistributedObject_UnRegisterObserver_001, TestSize.Level1)
1544 {
1545 std::string sessionId = "123456";
1546 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1547 storageEngine->isOpened_ = false;
1548 uint32_t ret = storageEngine->UnRegisterObserver(sessionId);
1549 EXPECT_EQ(ERR_DB_NOT_INIT, ret);
1550 }
1551
1552 /**
1553 * @tc.name: DistributedObject_UnRegisterObserver_001
1554 * @tc.desc: test FlatObjectStorageEngine UnRegisterObserver, empty sessionId.
1555 * @tc.type: FUNC
1556 */
1557 HWTEST_F(NativeObjectStoreTest, DistributedObject_UnRegisterObserver_002, TestSize.Level1)
1558 {
1559 std::string bundleName = "default";
1560 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1561 storageEngine->Open(bundleName);
1562 uint32_t ret = storageEngine->UnRegisterObserver("");
1563 EXPECT_EQ(ERR_DB_NOT_EXIST, ret);
1564 }
1565
1566 /**
1567 * @tc.name: DistributedObject_SetStatusNotifier_002
1568 * @tc.desc: test FlatObjectStorageEngine SetStatusNotifier.
1569 * @tc.type: FUNC
1570 */
1571 HWTEST_F(NativeObjectStoreTest, DistributedObject_SetStatusNotifier_002, TestSize.Level1)
1572 {
1573 std::string bundleName = "default";
1574 std::string sessionId = "123456";
1575 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1576 storageEngine->Open(bundleName);
1577 storageEngine->CreateTable(sessionId);
1578 auto statusNotifier = std::make_shared<StatusNotifierImpl>();
1579 uint32_t ret = storageEngine->SetStatusNotifier(statusNotifier);
1580 EXPECT_EQ(SUCCESS, ret);
1581 ret = storageEngine->DeleteTable(sessionId);
1582 EXPECT_EQ(SUCCESS, ret);
1583 }
1584
1585 /**
1586 * @tc.name: DistributedObject_SetStatusNotifier_003
1587 * @tc.desc: test FlatObjectStorageEngine SetStatusNotifier, storageEngine is not open.
1588 * @tc.type: FUNC
1589 */
1590 HWTEST_F(NativeObjectStoreTest, DistributedObject_SetStatusNotifier_003, TestSize.Level1)
1591 {
1592 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1593 auto statusNotifier = std::make_shared<StatusNotifierImpl>();
1594 storageEngine->isOpened_ = false;
1595 uint32_t ret = storageEngine->SetStatusNotifier(statusNotifier);
1596 EXPECT_EQ(ERR_DB_NOT_INIT, ret);
1597 }
1598
1599 /**
1600 * @tc.name: DistributedObject_GetItems_001
1601 * @tc.desc: test FlatObjectStorageEngine GetItems, storageEngine is not open or error key.
1602 * @tc.type: FUNC
1603 */
1604 HWTEST_F(NativeObjectStoreTest, DistributedObject_GetItems_001, TestSize.Level1)
1605 {
1606 std::string bundleName = "default";
1607 std::string sessionId = "123456";
1608 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1609 storageEngine->Open(bundleName);
1610 storageEngine->CreateTable(sessionId);
1611 storageEngine->isOpened_ = false;
1612 std::vector<uint8_t> value = { 1, 8 };
1613 std::map<std::string, std::vector<uint8_t>> data = { { "age", value } };
1614 uint32_t ret = storageEngine->GetItems(sessionId, data);
1615 EXPECT_EQ(ERR_DB_NOT_INIT, ret);
1616 storageEngine->Open(bundleName);
1617 ret = storageEngine->GetItems("", data);
1618 EXPECT_EQ(ERR_DB_NOT_EXIST, ret);
1619 ret = storageEngine->DeleteTable(sessionId);
1620 EXPECT_EQ(SUCCESS, ret);
1621 }
1622
1623 /**
1624 * @tc.name: DistributedObject_NotifyStatus_001
1625 * @tc.desc: test FlatObjectStorageEngine NotifyStatus.
1626 * @tc.type: FUNC
1627 */
1628 HWTEST_F(NativeObjectStoreTest, DistributedObject_NotifyStatus_001, TestSize.Level1)
1629 {
1630 std::string bundleName = "default07";
1631 std::string sessionId = "123456";
1632 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1633 uint32_t ret = storageEngine->Open(bundleName);
1634 storageEngine->NotifyStatus(sessionId, "local", "restored");
1635 ret = storageEngine->Close();
1636 EXPECT_EQ(SUCCESS, ret);
1637 }
1638
1639 /**
1640 * @tc.name: DistributedObject_SyncAllData_002
1641 * @tc.desc: test FlatObjectStorageEngine SyncAllData.
1642 * @tc.type: FUNC
1643 */
1644 HWTEST_F(NativeObjectStoreTest, DistributedObject_SyncAllData_002, TestSize.Level1)
1645 {
1646 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
__anonf95d8e280602(const std::map<std::string, DistributedDB::DBStatus> &) 1647 auto onComplete = [](const std::map<std::string, DistributedDB::DBStatus> &) {};
1648 std::vector<std::string> deviceIds = { "deviceIds" };
1649 uint32_t ret = storageEngine->SyncAllData("", deviceIds, onComplete);
1650 EXPECT_EQ(ERR_DB_NOT_EXIST, ret);
1651 }
1652
1653 /**
1654 * @tc.name: DistributedObject_UpdateItem_002
1655 * @tc.desc: test FlatObjectStorageEngine UpdateItem, error status.
1656 * @tc.type: FUNC
1657 */
1658 HWTEST_F(NativeObjectStoreTest, DistributedObject_UpdateItem_002, TestSize.Level1)
1659 {
1660 std::string bundleName = "default";
1661 std::string sessionId = "123456";
1662 std::shared_ptr<FlatObjectStorageEngine> storageEngine = std::make_shared<FlatObjectStorageEngine>();
1663 storageEngine->Open(bundleName);
1664 storageEngine->CreateTable(sessionId);
1665 std::vector<uint8_t> value = { 1, 2 };
1666 uint32_t ret = storageEngine->UpdateItem(sessionId, std::string(1025, 't'), value);
1667 EXPECT_EQ(ERR_CLOSE_STORAGE, ret);
1668 ret = storageEngine->DeleteTable(sessionId);
1669 EXPECT_EQ(SUCCESS, ret);
1670 }
1671 } // namespace
1672