• 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, " +
20    "name TEXT NOT NULL, " + "age INTEGER, " + "salary REAL, " + "blobType BLOB)";
21
22const STORE_CONFIG = {
23    name: "Delete.db",
24}
25var rdbStore = undefined;
26
27describe('rdbStoreDeleteTest', function () {
28    beforeAll(function () {
29        console.info(TAG + 'beforeAll')
30    })
31
32    beforeEach(async function () {
33        console.info(TAG + 'beforeEach')
34        rdbStore = await dataRdb.getRdbStore(STORE_CONFIG, 1);
35        await rdbStore.executeSql(CREATE_TABLE_TEST, null);
36    })
37
38    afterEach(async function () {
39        console.info(TAG + 'afterEach')
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 ret = await rdbStore.delete(predicates)
138            expect(1).assertEqual(ret)
139        }
140        done()
141        console.log(TAG + "************* testRdbStoreDelete0002 end *************");
142    })
143
144    /**
145     * @tc.name rdb delete test
146     * @tc.number SUB_DDM_AppDataFWK_JSRDB_Delete_0030
147     * @tc.desc rdb delete test
148     */
149    it('testRdbStoreDelete0003', 0, async function (done) {
150        console.log(TAG + "************* testRdbStoreDelete0003 start *************");
151        var u8 = new Uint8Array([1, 2, 3])
152        {
153            const valueBucket = {
154                "name": "zhangsan",
155                "age": 18,
156                "salary": 100.5,
157                "blobType": u8,
158            }
159            await rdbStore.insert("test", valueBucket)
160        }
161        {
162            const valueBucket = {
163                "name": "lisi",
164                "age": 28,
165                "salary": 100.5,
166                "blobType": u8,
167            }
168            await rdbStore.insert("test", valueBucket)
169        }
170        {
171            let predicates = await new dataRdb.RdbPredicates("test")
172            predicates.equalTo("age", 28)
173            let resultSet = await rdbStore.query(predicates)
174            expect(1).assertEqual(resultSet.rowCount)
175            resultSet.close()
176        }
177        {
178            let predicates = await new dataRdb.RdbPredicates("test")
179            predicates.equalTo("age", 28)
180            let deletePromise = rdbStore.delete(predicates)
181            deletePromise.then(async (ret) => {
182                expect(1).assertEqual(ret)
183                console.log(TAG + "Delete done: " + ret)
184            }).catch((err) => {
185                expect(null).assertFail()
186            })
187            await deletePromise
188        }
189        {
190            let predicates = await new dataRdb.RdbPredicates("test")
191            predicates.equalTo("age", 28)
192            let resultSet = await rdbStore.query(predicates)
193            expect(0).assertEqual(resultSet.rowCount)
194            resultSet.close()
195        }
196        done()
197        console.log(TAG + "************* testRdbStoreDelete0003 end *************");
198    })
199
200    /**
201     * @tc.name rdb delete test
202     * @tc.number SUB_DDM_AppDataFWK_JSRDB_Delete_0040
203     * @tc.desc rdb delete test
204     */
205    it('testRdbStoreDelete0004', 0, async function (done) {
206        console.log(TAG + "************* testRdbStoreDelete0004 start *************");
207        var u8 = new Uint8Array([1, 2, 3])
208        {
209            const valueBucket = {
210                "name": "zhangsan",
211                "age": 18,
212                "salary": 100.5,
213                "blobType": u8,
214            }
215            await rdbStore.insert("test", valueBucket)
216        }
217        {
218            const valueBucket = {
219                "name": "lisi",
220                "age": 28,
221                "salary": 100.5,
222                "blobType": u8,
223            }
224            await rdbStore.insert("test", valueBucket)
225        }
226        {
227            const valueBucket = {
228                "name": "lisi",
229                "age": 38,
230                "salary": 100.5,
231                "blobType": u8,
232            }
233            await rdbStore.insert("test", valueBucket)
234        }
235        {
236            let predicates = await new dataRdb.RdbPredicates("test")
237            predicates.equalTo("aaa id", 1)
238            let deletePromise = rdbStore.delete(predicates)
239            deletePromise.then(async (ret) => {
240                console.log(TAG + "delete done: " + ret)
241                expect(null).assertFail()
242            }).catch((err) => {
243                console.log(TAG + "delete with wrong conditions")
244            })
245        }
246        done()
247        console.log(TAG + "************* testRdbStoreDelete0004 end *************");
248    })
249
250    /**
251     * @tc.name rdb delete test
252     * @tc.number SUB_DDM_AppDataFWK_JSRDB_Delete_0050
253     * @tc.desc rdb delete test
254     */
255    it('testRdbStoreDelete0005', 0, async function (done) {
256        console.log(TAG + "************* testRdbStoreDelete0005 start *************");
257        var u8 = new Uint8Array([1, 2, 3])
258        {
259            const valueBucket = {
260                "name": "zhangsan",
261                "age": 18,
262                "salary": 100.5,
263                "blobType": u8,
264            }
265            await rdbStore.insert("test", valueBucket)
266        }
267        {
268            const valueBucket = {
269                "name": "lisi",
270                "age": 28,
271                "salary": 100.5,
272                "blobType": u8,
273            }
274            await rdbStore.insert("test", valueBucket)
275        }
276        {
277            const valueBucket = {
278                "name": "lisi",
279                "age": 38,
280                "salary": 100.5,
281                "blobType": u8,
282            }
283            await rdbStore.insert("test", valueBucket)
284        }
285        {
286            let predicates = await new dataRdb.RdbPredicates("test")
287            predicates.equalTo("name", "lisi")
288            let deletePromise = rdbStore.delete(predicates)
289            deletePromise.then(async (ret) => {
290                expect(2).assertEqual(ret)
291                console.log(TAG + "Delete done: " + ret)
292            }).catch((err) => {
293                expect(null).assertFail()
294            })
295            await deletePromise
296        }
297        done()
298        console.log(TAG + "************* testRdbStoreDelete0005 end *************");
299    })
300
301    /**
302     * @tc.name rdb delete test
303     * @tc.number SUB_DDM_AppDataFWK_JSRDB_Delete_0060
304     * @tc.desc rdb delete test
305     */
306    it('testRdbStoreDelete0006', 0, async function (done) {
307        console.log(TAG + "************* testRdbStoreDelete0006 start *************");
308
309        try {
310            let predicates = await new dataRdb.RdbPredicates("")
311            let deletePromise = rdbStore.delete(predicates)
312            deletePromise.then(async (ret) => {
313                console.log(TAG + "delete done: " + ret)
314                expect(null).assertFail()
315            }).catch((err) => {
316                console.log(TAG + "delete with null")
317            })
318        } catch (err) {
319            console.log("catch err: failed, err: code=" + err.code + " message=" + err.message)
320            expect("401").assertEqual(err.code)
321            done()
322        }
323        done()
324        console.log(TAG + "************* testRdbStoreDelete0006 end *************");
325    })
326
327    console.log(TAG + "*************Unit Test End*************");
328})