• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2021 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 */
15import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
16import dataRdb from '@ohos.data.rdb';
17
18const TAG = "[RDB_JSKITS_TEST]"
19const CREATE_TABLE_TEST = "CREATE TABLE IF NOT EXISTS test (" + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "name TEXT NOT NULL, " + "age INTEGER, " + "salary REAL, " + "blobType BLOB)";
20
21const STORE_CONFIG = {
22    name: "Delete.db",
23}
24var rdbStore = undefined;
25
26describe('rdbStoreDeleteTest', function () {
27    beforeAll(function () {
28        console.info(TAG + 'beforeAll')
29    })
30
31    beforeEach(async function () {
32        console.info(TAG + 'beforeEach')
33        rdbStore = await dataRdb.getRdbStore(STORE_CONFIG, 1);
34        await rdbStore.executeSql(CREATE_TABLE_TEST, null);
35    })
36
37    afterEach(async function () {
38        console.info(TAG + 'afterEach')
39        await rdbStore.executeSql("DELETE FROM test");
40        rdbStore = null
41        await dataRdb.deleteRdbStore("Delete.db");
42    })
43
44    afterAll(async function () {
45        console.info(TAG + 'afterAll')
46    })
47
48    console.log(TAG + "*************Unit Test Begin*************");
49    /**
50     * @tc.name rdb delete test
51     * @tc.number SUB_DDM_AppDataFWK_JSRDB_Delete_0010
52     * @tc.desc rdb delete test
53     */
54    it('testRdbStoreDelete0001', 0, async function (done) {
55        console.log(TAG + "************* testRdbStoreDelete0001 start *************");
56        var u8 = new Uint8Array([1, 2, 3])
57        {
58            const valueBucket = {
59                "name": "zhangsan",
60                "age": 18,
61                "salary": 100.5,
62                "blobType": u8,
63            }
64            await rdbStore.insert("test", valueBucket)
65        }
66        {
67            const valueBucket = {
68                "name": "lisi",
69                "age": 28,
70                "salary": 100.5,
71                "blobType": u8,
72            }
73            await rdbStore.insert("test", valueBucket)
74        }
75        {
76            const valueBucket = {
77                "name": "lisi",
78                "age": 38,
79                "salary": 100.5,
80                "blobType": u8,
81            }
82            await rdbStore.insert("test", valueBucket)
83        }
84        {
85            let predicates = await new dataRdb.RdbPredicates("test")
86            let deletePromise = rdbStore.delete(predicates)
87            deletePromise.then(async (ret) => {
88                expect(3).assertEqual(ret)
89                console.log(TAG + "Delete done: " + ret)
90            }).catch((err) => {
91                expect(null).assertFail()
92            })
93            await deletePromise
94        }
95        done()
96        console.log(TAG + "************* testRdbStoreDelete0001 end *************");
97    })
98
99    /**
100     * @tc.name rdb delete test
101     * @tc.number SUB_DDM_AppDataFWK_JSRDB_Delete_0020
102     * @tc.desc rdb delete test
103     */
104    it('testRdbStoreDelete0002', 0, async function (done) {
105        console.log(TAG + "************* testRdbStoreDelete0002 start *************");
106        var u8 = new Uint8Array([1, 2, 3])
107        {
108            const valueBucket = {
109                "name": "zhangsan",
110                "age": 18,
111                "salary": 100.5,
112                "blobType": u8,
113            }
114            await rdbStore.insert("test", valueBucket)
115        }
116        {
117            const valueBucket = {
118                "name": "lisi",
119                "age": 28,
120                "salary": 100.5,
121                "blobType": u8,
122            }
123            await rdbStore.insert("test", valueBucket)
124        }
125        {
126            const valueBucket = {
127                "name": "lisi",
128                "age": 38,
129                "salary": 100.5,
130                "blobType": u8,
131            }
132            await rdbStore.insert("test", valueBucket)
133        }
134        {
135            let predicates = await new dataRdb.RdbPredicates("test")
136            predicates.equalTo("name", "zhangsan")
137            let deletePromise = rdbStore.delete(predicates)
138            deletePromise.then(async (ret) => {
139                await expect(1).assertEqual(ret)
140                await console.log(TAG + "Delete done: " + ret)
141            }).catch((err) => {
142                expect(null).assertFail()
143            })
144            await deletePromise
145        }
146        done()
147        console.log(TAG + "************* testRdbStoreDelete0002 end *************");
148    })
149
150    /**
151     * @tc.name rdb delete test
152     * @tc.number SUB_DDM_AppDataFWK_JSRDB_Delete_0030
153     * @tc.desc rdb delete test
154     */
155    it('testRdbStoreDelete0003', 0, async function (done) {
156        console.log(TAG + "************* testRdbStoreDelete0003 start *************");
157        var u8 = new Uint8Array([1, 2, 3])
158        {
159            const valueBucket = {
160                "name": "zhangsan",
161                "age": 18,
162                "salary": 100.5,
163                "blobType": u8,
164            }
165            await rdbStore.insert("test", valueBucket)
166        }
167        {
168            const valueBucket = {
169                "name": "lisi",
170                "age": 28,
171                "salary": 100.5,
172                "blobType": u8,
173            }
174            await rdbStore.insert("test", valueBucket)
175        }
176        {
177            let predicates = await new dataRdb.RdbPredicates("test")
178            predicates.equalTo("age", 28)
179            let resultSet = await rdbStore.query(predicates)
180            expect(1).assertEqual(resultSet.rowCount)
181        }
182        {
183            let predicates = await new dataRdb.RdbPredicates("test")
184            predicates.equalTo("age", 28)
185            let deletePromise = rdbStore.delete(predicates)
186            deletePromise.then(async (ret) => {
187                expect(1).assertEqual(ret)
188                console.log(TAG + "Delete done: " + ret)
189            }).catch((err) => {
190                expect(null).assertFail()
191            })
192            await deletePromise
193        }
194        {
195            let predicates = await new dataRdb.RdbPredicates("test")
196            predicates.equalTo("age", 28)
197            let resultSet = await rdbStore.query(predicates)
198            expect(0).assertEqual(resultSet.rowCount)
199        }
200        done()
201        console.log(TAG + "************* testRdbStoreDelete0003 end *************");
202    })
203
204    /**
205     * @tc.name rdb delete test
206     * @tc.number SUB_DDM_AppDataFWK_JSRDB_Delete_0040
207     * @tc.desc rdb delete test
208     */
209    it('testRdbStoreDelete0004', 0, async function (done) {
210        console.log(TAG + "************* testRdbStoreDelete0004 start *************");
211        var u8 = new Uint8Array([1, 2, 3])
212        {
213            const valueBucket = {
214                "name": "zhangsan",
215                "age": 18,
216                "salary": 100.5,
217                "blobType": u8,
218            }
219            await rdbStore.insert("test", valueBucket)
220        }
221        {
222            const valueBucket = {
223                "name": "lisi",
224                "age": 28,
225                "salary": 100.5,
226                "blobType": u8,
227            }
228            await rdbStore.insert("test", valueBucket)
229        }
230        {
231            const valueBucket = {
232                "name": "lisi",
233                "age": 38,
234                "salary": 100.5,
235                "blobType": u8,
236            }
237            await rdbStore.insert("test", valueBucket)
238        }
239        {
240            let predicates = await new dataRdb.RdbPredicates("test")
241            predicates.equalTo("aaa id", 1)
242            let deletePromise = rdbStore.delete(predicates)
243            deletePromise.then(async (ret) => {
244                console.log(TAG + "delete done: " + ret)
245                expect(null).assertFail()
246            }).catch((err) => {
247                console.log(TAG + "delete with wrong conditions")
248            })
249        }
250        done()
251        console.log(TAG + "************* testRdbStoreDelete0004 end *************");
252    })
253
254    /**
255     * @tc.name rdb delete test
256     * @tc.number SUB_DDM_AppDataFWK_JSRDB_Delete_0050
257     * @tc.desc rdb delete test
258     */
259    it('testRdbStoreDelete0005', 0, async function (done) {
260        console.log(TAG + "************* testRdbStoreDelete0005 start *************");
261        var u8 = new Uint8Array([1, 2, 3])
262        {
263            const valueBucket = {
264                "name": "zhangsan",
265                "age": 18,
266                "salary": 100.5,
267                "blobType": u8,
268            }
269            await rdbStore.insert("test", valueBucket)
270        }
271        {
272            const valueBucket = {
273                "name": "lisi",
274                "age": 28,
275                "salary": 100.5,
276                "blobType": u8,
277            }
278            await rdbStore.insert("test", valueBucket)
279        }
280        {
281            const valueBucket = {
282                "name": "lisi",
283                "age": 38,
284                "salary": 100.5,
285                "blobType": u8,
286            }
287            await rdbStore.insert("test", valueBucket)
288        }
289        {
290            let predicates = await new dataRdb.RdbPredicates("test")
291            predicates.equalTo("name", "lisi")
292            let deletePromise = rdbStore.delete(predicates)
293            deletePromise.then(async (ret) => {
294                expect(2).assertEqual(ret)
295                console.log(TAG + "Delete done: " + ret)
296            }).catch((err) => {
297                expect(null).assertFail()
298            })
299            await deletePromise
300        }
301        done()
302        console.log(TAG + "************* testRdbStoreDelete0005 end *************");
303    })
304
305    /**
306     * @tc.name rdb delete test
307     * @tc.number SUB_DDM_AppDataFWK_JSRDB_Delete_0060
308     * @tc.desc rdb delete test
309     */
310    it('testRdbStoreDelete0006', 0, async function (done) {
311        console.log(TAG + "************* testRdbStoreDelete0006 start *************");
312
313        try {
314            let predicates = await new dataRdb.RdbPredicates("")
315            let deletePromise = rdbStore.delete(predicates)
316            deletePromise.then(async (ret) => {
317                console.log(TAG + "delete done: " + ret)
318                expect(null).assertFail()
319            }).catch((err) => {
320                console.log(TAG + "delete with null")
321            })
322        } catch (err) {
323            console.log("catch err: failed, err: code=" + err.code + " message=" + err.message)
324            expect("401").assertEqual(err.code)
325            done()
326        }
327        done()
328        console.log(TAG + "************* testRdbStoreDelete0006 end *************");
329    })
330
331    console.log(TAG + "*************Unit Test End*************");
332})