1// @ts-nocheck
2/*
3* Copyright (c) 2021 Huawei Device Co., Ltd.
4* Licensed under the Apache License, Version 2.0 (the "License");
5* you may not use this file except in compliance with the License.
6* You may obtain a copy of the License at
7*
8* http://www.apache.org/licenses/LICENSE-2.0
9*
10* Unless required by applicable law or agreed to in writing, software
11* distributed under the License is distributed on an "AS IS" BASIS,
12* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13* See the License for the specific language governing permissions and
14* limitations under the License.
15*/
16import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
17import storage from '@ohos.data.storage'
18
19const PATH = "/data/storage/el2/database/test_storage";
20var mPref;
21
22describe('StorageHelperJsunit', function () {
23    beforeAll(function () {
24        console.info('beforeAll')
25    })
26
27    beforeEach(function () {
28        console.info('beforeEach');
29        mPref = storage.getStorageSync(PATH);
30    })
31
32    afterEach(function () {
33        console.info('afterEach');
34        storage.deleteStorageSync(PATH);
35    })
36
37    afterAll(function () {
38        console.info('afterAll')
39    })
40
41    /**
42     * @tc.name getStorageSync interface test
43     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Storage_0010
44     * @tc.desc getStorageSync interface test
45     */
46    it('testGetStorageHelper001', 0, async function () {
47        mPref.putSync('test', 2);
48        var value = mPref.getSync('test', 0);
49        expect(value).assertEqual(2);
50    })
51
52    /**
53     * @tc.name getStorage interface test
54     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Storage_0020
55     * @tc.desc getStorage interface test
56     */
57    it('testGetStorageHelper002', 0, async function () {
58        const promise = storage.getStorage(PATH);
59        await promise.then((pref) => {
60            pref.putSync('test', 2);
61            var value = mPref.getSync('test', 0);
62            expect(value).assertEqual(2);
63        }).catch((err) => {
64            expect(null).assertFail();
65        });
66    })
67
68    /**
69     * @tc.name removeStorageFromCacheSync interface test
70     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Storage_0030
71     * @tc.desc removeStorageFromCacheSync interface test
72     */
73    it('testRemoveStorageFromCache001', 0, function () {
74        let perf = storage.getStorageSync('/data/storage/el2/database/test_storage1');
75        perf.putSync('test', 2);
76        perf.flushSync();
77        try {
78            storage.removeStorageFromCacheSync('/data/storage/el2/database/test_storage1');
79        } catch (e) {
80            expect(null).assertFail();
81        }
82        perf = storage.getStorageSync('/data/storage/el2/database/test_storage1');
83        var value = perf.getSync('test', 0);
84        expect(value).assertEqual(2);
85    })
86    /**
87     * @tc.name removeStorageFromCache interface test
88     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Storage_0040
89     * @tc.desc removeStorageFromCache interface test
90     */
91    it('testRemoveStorageFromCache002', 0, async function () {
92        let perf = storage.getStorageSync('/data/test_storage2');
93        perf = null;
94        const promise = storage.removeStorageFromCache('/data/test_storage2');
95        await promise.then((pref) => {
96        }).catch((err) => {
97            expect(null).assertFail();
98        });
99    })
100
101    /**
102     * @tc.name deleteStorageSync interface test
103     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Storage_0050
104     * @tc.desc deleteStorageSync interface test
105     */
106    it('testDeleteStorageHelper001', 0, function () {
107        let perf = storage.getStorageSync('/data/test_storage3');
108        try {
109            storage.deleteStorageSync('/data/test_storage3');
110        } catch (e) {
111            expect(null).assertFail();
112        }
113        try {
114            perf.putSync("int", 3);
115        } catch (e) {
116            expect(null).assertFail();
117        }
118    })
119
120    /**
121     * @tc.name deleteStorage interface test
122     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Storage_0060
123     * @tc.desc deleteStorage interface test
124     */
125    it('testDeleteStorageHelper002', 0, async function () {
126        let perf = storage.getStorageSync('/data/test_storage4');
127        perf = null;
128        const promise = storage.deleteStorage('/data/test_storage4');
129        await promise.then((pref) => {
130        }).catch((err) => {
131            expect(null).assertFail();
132        });
133    })
134})