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