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 */
15import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
16import ddm from '@ohos.data.distributedData';
17
18describe('queryTest', function() {
19
20    /**
21     * @tc.name QueryResetTest001
22     * @tc.desc Test Js Api Query.Reset() testcase 001
23     * @tc.type: FUNC
24     * @tc.require: issueNumber
25     */
26    it('QueryResetTest001', 0, async function(done) {
27        var query = null;
28        try {
29            query = new ddm.Query();
30            expect("").assertEqual(query.getSqlLike());
31            query.equalTo("test", 3);
32            console.info("query is " + query.getSqlLike());
33            expect(query.getSqlLike() !== "").assertTrue();
34            query.reset();
35            expect("").assertEqual(query.getSqlLike());
36            console.info("query is " + query.getSqlLike());
37        } catch (e) {
38            console.error("simply calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
39            expect(null).assertFail();
40        }
41        query = null;
42        done();
43    })
44
45    /**
46     * @tc.name QueryResetTest002
47     * @tc.desc Test Js Api Query.Reset() testcase 002
48     * @tc.type: FUNC
49     * @tc.require: issueNumber
50     */
51    it('QueryResetTest002', 0, async function(done) {
52        var query = null;
53        try {
54            query = new ddm.Query();
55            expect("").assertEqual(query.getSqlLike());
56            query.equalTo("number", 5);
57            query.equalTo("string", 'v');
58            query.equalTo("boolean", false);
59            console.info("query is " + query.getSqlLike());
60            expect(query.getSqlLike() !== "").assertTrue();
61            query.reset();
62            query.reset();
63            query.reset();
64            expect("").assertEqual(query.getSqlLike());
65            console.info("sql after  reset: " + query.getSqlLike());
66            console.info("query is " + query.getSqlLike());
67        } catch (e) {
68            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
69            expect(null).assertFail();
70        }
71        query = null;
72        done();
73    })
74
75    /**
76     * @tc.name QueryResetTest003
77     * @tc.desc Test Js Api Query.Reset() testcase 003
78     * @tc.type: FUNC
79     * @tc.require: issueNumber
80     */
81    it('QueryResetTest003', 0, async function(done) {
82        var query = null;
83        try {
84            query = new ddm.Query();
85            expect("").assertEqual(query.getSqlLike());
86            query.equalTo("key", "value");
87            expect(query.getSqlLike() !== "").assertTrue();
88            let sql = query.getSqlLike();
89            query.reset().equalTo("key", "value");
90            console.info("query is " + query.getSqlLike());
91            expect(sql === query.getSqlLike()).assertTrue();
92        } catch (e) {
93            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
94            expect(null).assertFail();
95        }
96        query = null;
97        done();
98    })
99
100    /**
101     * @tc.name QueryResetTest004
102     * @tc.desc Test Js Api Query.Reset() testcase 004
103     * @tc.type: FUNC
104     * @tc.require: issueNumber
105     */
106    it('QueryResetTest004', 0, async function(done) {
107        var query = null;
108        try {
109            query = new ddm.Query();
110            expect("").assertEqual(query.getSqlLike());
111            query.equalTo("key", "value");
112            expect(query.getSqlLike() !== "").assertTrue();
113            query.reset(3);
114            console.info("should throw exception on invalid arguments");
115            expect(null).assertFail();
116        } catch (e) {
117            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
118        }
119        query = null;
120        done();
121    })
122
123    /**
124     * @tc.name QueryEqaulToTest001
125     * @tc.desc Test Js Api Query.EqaulTo() testcase 001
126     * @tc.type: FUNC
127     * @tc.require: issueNumber
128     */
129    it('QueryEqaulToTest001', 0, async function(done) {
130        var query = null;
131        try {
132            query = new ddm.Query();
133            expect("").assertEqual(query.getSqlLike());
134            query.equalTo("key1", 5);
135            query.equalTo("key2", 5.0);
136            query.equalTo("key3", false);
137            query.equalTo("key3", "string");
138            expect(query.getSqlLike() !== "").assertTrue();
139            console.info("query is " + query.getSqlLike());
140        } catch (e) {
141            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
142            expect(null).assertFail();
143        }
144        query = null;
145        done();
146    })
147
148    /**
149     * @tc.name QueryEqualToTest002
150     * @tc.desc Test Js Api Query.EqualTo() testcase 002
151     * @tc.type: FUNC
152     * @tc.require: issueNumber
153     */
154    it('QueryEqualToTest002', 0, async function(done) {
155        var query = null;
156        try {
157            query = new ddm.Query();
158            expect("").assertEqual(query.getSqlLike());
159            query.equalTo("key1", 1).equalTo("key2", 2).equalTo("key3", 3);
160            expect(query.getSqlLike() !== "").assertTrue();
161            console.info("query is " + query.getSqlLike());
162        } catch (e) {
163            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
164            expect(null).assertFail();
165        }
166        query = null;
167        done();
168    })
169
170    /**
171     * @tc.name QueryEqualToTest003
172     * @tc.desc Test Js Api Query.EqualTo() testcase 003
173     * @tc.type: FUNC
174     * @tc.require: issueNumber
175     */
176    it('QueryEqualToTest003', 0, async function(done) {
177        var query = null;
178        try {
179            query = new ddm.Query();
180            expect("").assertEqual(query.getSqlLike());
181            query.equalTo("key2", NaN);
182            expect(query.getSqlLike() !== "").assertTrue();
183            console.info("query is " + query.getSqlLike());
184        } catch (e) {
185            expect(null).assertFail();
186        }
187        query = null;
188        done();
189    })
190
191    /**
192     * @tc.name QueryEqualToTest004
193     * @tc.desc Test Js Api Query.EqualTo() testcase 004
194     * @tc.type: FUNC
195     * @tc.require: issueNumber
196     */
197    it('QueryEqualToTest004', 0, async function(done) {
198        var query = null;
199        try {
200            query = new ddm.Query();
201            expect("").assertEqual(query.getSqlLike());
202            query.equalTo("key1", "value", "too more");
203            console.info("should throw exception on invalid arguments");
204            console.info("query is " + query.getSqlLike());
205            expect(null).assertFail();
206        } catch (e) {
207            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
208        }
209        query = null;
210        done();
211    })
212
213    /**
214     * @tc.name QueryNotEqualToTest001
215     * @tc.desc Test Js Api Query.NotEqualTo() testcase 001
216     * @tc.type: FUNC
217     * @tc.require: issueNumber
218     */
219    it('QueryNotEqualToTest001', 0, async function(done) {
220        var query = null;
221        try {
222            query = new ddm.Query();
223            expect("").assertEqual(query.getSqlLike());
224            query.notEqualTo("key1", 5);
225            query.notEqualTo("key2", 5.0);
226            query.notEqualTo("key3", false);
227            query.notEqualTo("key4", "string");
228            expect(query.getSqlLike() !== "").assertTrue();
229            console.info("query is " + query.getSqlLike());
230        } catch (e) {
231            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
232            expect(null).assertFail();
233        }
234        query = null;
235        done();
236    })
237
238    /**
239     * @tc.name QueryNotEqualToTest002
240     * @tc.desc Test Js Api Query.NotEqualTo() testcase 002
241     * @tc.type: FUNC
242     * @tc.require: issueNumber
243     */
244    it('QueryNotEqualToTest002', 0, async function(done) {
245        var query = null;
246        try {
247            query = new ddm.Query();
248            expect("").assertEqual(query.getSqlLike());
249            query.notEqualTo("key", 5);
250            query.reset();
251            query.notEqualTo("key0", 5).equalTo("key1", 5).notEqualTo("key2", "str").notEqualTo("key3", false);
252            expect(query.getSqlLike() !== "").assertTrue();
253            console.info("query is " + query.getSqlLike());
254        } catch (e) {
255            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
256            expect(null).assertFail();
257        }
258        query = null;
259        done();
260    })
261
262    /**
263     * @tc.name QueryNotEqualToTest003
264     * @tc.desc Test Js Api Query.NotEqualTo() testcase 003
265     * @tc.type: FUNC
266     * @tc.require: issueNumber
267     */
268    it('QueryNotEqualToTest003', 0, async function(done) {
269        var query = null;
270        try {
271            query = new ddm.Query();
272            expect("").assertEqual(query.getSqlLike());
273            query.notEqualTo("key2", NaN);
274            expect(query.getSqlLike() !== "").assertTrue();
275            console.info("query is " + query.getSqlLike());
276        } catch (e) {
277            expect(null).assertFail();
278        }
279        query = null;
280        done();
281    })
282
283    /**
284     * @tc.name QueryNotEqualToTest004
285     * @tc.desc Test Js Api Query.NotEqualTo() testcase 004
286     * @tc.type: FUNC
287     * @tc.require: issueNumber
288     */
289    it('QueryNotEqualToTest004', 0, async function(done) {
290        var query = null;
291        try {
292            query = new ddm.Query();
293            expect("").assertEqual(query.getSqlLike());
294            query.notEqualTo("key1", "value", "too more", 4);
295            console.info("should throw exception on invalid arguments");
296        } catch (e) {
297            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
298        }
299        query = null;
300        done();
301    })
302
303    /**
304     * @tc.name QueryGreaterThanTest001
305     * @tc.desc Test Js Api Query.GreaterThan() testcase 001
306     * @tc.type: FUNC
307     * @tc.require: issueNumber
308     */
309    it('QueryGreaterThanTest001', 0, async function(done) {
310        var query = null;
311        try {
312            query = new ddm.Query();
313            expect("").assertEqual(query.getSqlLike());
314            query.greaterThan("key1", 5);
315            query.greaterThan("key2", 5.0);
316            query.greaterThan("key3", true);
317            query.greaterThan("key4", "string");
318            expect(query.getSqlLike() !== "").assertTrue();
319            console.info("query is " + query.getSqlLike());
320        } catch (e) {
321            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
322            expect(null).assertFail();
323        }
324        query = null;
325        done();
326    })
327
328    /**
329     * @tc.name QueryGreatThanTest002
330     * @tc.desc Test Js Api Query.GreatThan() testcase 002
331     * @tc.type: FUNC
332     * @tc.require: issueNumber
333     */
334    it('QueryGreatThanTest002', 0, async function(done) {
335        var query = null;
336        try {
337            query = new ddm.Query();
338            expect("").assertEqual(query.getSqlLike());
339            query.greaterThan("key", 5);
340            query.reset();
341            query.greaterThan("key0", 5).greaterThan("key1", "v5").greaterThan("key3", false);
342            expect(query.getSqlLike() !== "").assertTrue();
343            console.info("query is " + query.getSqlLike());
344        } catch (e) {
345            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
346            expect(null).assertFail();
347        }
348        query = null;
349        done();
350    })
351
352    /**
353     * @tc.name QueryGreatThanTest003
354     * @tc.desc Test Js Api Query.GreatThan() testcase 003
355     * @tc.type: FUNC
356     * @tc.require: issueNumber
357     */
358    it('QueryGreatThanTest003', 0, async function(done) {
359        var query = null;
360        try {
361            query = new ddm.Query();
362            expect("").assertEqual(query.getSqlLike());
363            query.greaterThan("key2", NaN);
364            console.info("should throw exception on invalid arguments");
365            console.info("query is " + query.getSqlLike());
366        } catch (e) {
367            expect(null).assertFail();
368        }
369        query = null;
370        done();
371    })
372
373    /**
374     * @tc.name QueryGreatThanTest004
375     * @tc.desc Test Js Api Query.GreatThan() testcase 004
376     * @tc.type: FUNC
377     * @tc.require: issueNumber
378     */
379    it('QueryGreatThanTest004', 0, async function(done) {
380        var query = null;
381        try {
382            query = new ddm.Query();
383            expect("").assertEqual(query.getSqlLike());
384            query.greaterThan("key1", "value", "too more", 4);
385            console.info("should throw exception on invalid arguments");
386            expect(null).assertFail();
387        } catch (e) {
388            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
389        }
390        query = null;
391        done();
392    })
393
394    /**
395     * @tc.name QueryLessThanTest001
396     * @tc.desc Test Js Api Query.LessThan() testcase 001
397     * @tc.type: FUNC
398     * @tc.require: issueNumber
399     */
400    it('QueryLessThanTest001', 0, async function(done) {
401        var query = null;
402        try {
403            query = new ddm.Query();
404            expect("").assertEqual(query.getSqlLike());
405            query.lessThan("key1", 5);
406            query.lessThan("key2", 5.0);
407            query.lessThan("key3", true);
408            query.lessThan("key4", "string");
409            expect(query.getSqlLike() !== "").assertTrue();
410            console.info("query is " + query.getSqlLike());
411        } catch (e) {
412            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
413        }
414        query = null;
415        done();
416    })
417
418    /**
419     * @tc.name QueryLessThanTest002
420     * @tc.desc Test Js Api Query.LessThan() testcase 002
421     * @tc.type: FUNC
422     * @tc.require: issueNumber
423     */
424    it('QueryLessThanTest002', 0, async function(done) {
425        var query = null;
426        try {
427            query = new ddm.Query();
428            expect("").assertEqual(query.getSqlLike());
429            query.lessThan("key", 5);
430            query.reset();
431            query.lessThan("key0", 5).lessThan("key1", "v5").lessThan("key3", false);
432            expect(query.getSqlLike() !== "").assertTrue();
433            console.info("query is " + query.getSqlLike());
434        } catch (e) {
435            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
436            expect(null).assertTrue();
437        }
438        query = null;
439        done();
440    })
441
442    /**
443     * @tc.name QueryLessThanTest003
444     * @tc.desc Test Js Api Query.LessThan() testcase 003
445     * @tc.type: FUNC
446     * @tc.require: issueNumber
447     */
448    it('QueryLessThanTest003', 0, async function(done) {
449        var query = null;
450        try {
451            query = new ddm.Query();
452            expect("").assertEqual(query.getSqlLike());
453            query.lessThan("key2", NaN);
454            console.info("query is " + query.getSqlLike());
455        } catch (e) {
456            expect(null).assertFail();
457        }
458        query = null;
459        done();
460    })
461
462    /**
463     * @tc.name QueryLessThanTest004
464     * @tc.desc Test Js Api Query.LessThan() testcase 004
465     * @tc.type: FUNC
466     * @tc.require: issueNumber
467     */
468    it('QueryLessThanTest004', 0, async function(done) {
469        var query = null;
470        try {
471            query = new ddm.Query();
472            expect("").assertEqual(query.getSqlLike());
473            query.lessThan("key1", "value", "too more", 4);
474            console.info("query is " + query.getSqlLike());
475            expect(null).assertFail();
476        } catch (e) {
477            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
478        }
479        query = null;
480        done();
481    })
482
483    /**
484     * @tc.name QueryGreaterThanOrEqualToTest001
485     * @tc.desc Test Js Api Query.GreaterThanOrEqualTo() testcase 001
486     * @tc.type: FUNC
487     * @tc.require: issueNumber
488     */
489    it('QueryGreaterThanOrEqualToTest001', 0, async function(done) {
490        var query = null;
491        try {
492            query = new ddm.Query();
493            expect("").assertEqual(query.getSqlLike());
494            query.greaterThanOrEqualTo("key1", 5);
495            query.greaterThanOrEqualTo("key2", 5.0);
496            query.greaterThanOrEqualTo("key3", true);
497            query.greaterThanOrEqualTo("key4", "string");
498            expect(query.getSqlLike() !== "").assertTrue();
499            console.info("query is " + query.getSqlLike());
500        } catch (e) {
501            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
502            expect(null).assertFail();
503        }
504        query = null;
505        done();
506    })
507
508    /**
509     * @tc.name QueryGreaterThanOrEqualToTest002
510     * @tc.desc Test Js Api Query.GreaterThanOrEqualTo() testcase 002
511     * @tc.type: FUNC
512     * @tc.require: issueNumber
513     */
514    it('QueryGreaterThanOrEqualToTest002', 0, async function(done) {
515        var query = null;
516        try {
517            query = new ddm.Query();
518            expect("").assertEqual(query.getSqlLike());
519            query.greaterThanOrEqualTo("key", 5);
520            query.reset();
521            query.greaterThanOrEqualTo("key0", 5)
522                .greaterThanOrEqualTo("key1", "v5")
523                .greaterThanOrEqualTo("key3", false);
524            expect(query.getSqlLike() !== "").assertTrue();
525            console.info("query is " + query.getSqlLike());
526        } catch (e) {
527            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
528            expect(null).assertFail();
529        }
530        query = null;
531        done();
532    })
533
534    /**
535     * @tc.name QueryGreaterThanOrEqualToTest003
536     * @tc.desc Test Js Api Query.GreaterThanOrEqualTo() testcase 003
537     * @tc.type: FUNC
538     * @tc.require: issueNumber
539     */
540    it('QueryGreaterThanOrEqualToTest003', 0, async function(done) {
541        var query = null;
542        try {
543            query = new ddm.Query();
544            expect("").assertEqual(query.getSqlLike());
545            query.greaterThanOrEqualTo("key2", NaN);
546            expect(query.getSqlLike() !== "").assertTrue();
547            console.info("query is " + query.getSqlLike());
548        } catch (e) {
549            expect(null).assertFail();
550        }
551        query = null;
552        done();
553    })
554
555    /**
556     * @tc.name QueryGreaterThanOrEqualToTest004
557     * @tc.desc Test Js Api Query.GreaterThanOrEqualTo() testcase 004
558     * @tc.type: FUNC
559     * @tc.require: issueNumber
560     */
561    it('QueryGreaterThanOrEqualToTest004', 0, async function(done) {
562        var query = null;
563        try {
564            query = new ddm.Query();
565            expect("").assertEqual(query.getSqlLike());
566            query.greaterThanOrEqualTo("key1", "value", "too more", 4);
567            console.info("should throw exception on invalid arguments");
568            expect(null).assertFail();
569        } catch (e) {
570            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
571        }
572        query = null;
573        done();
574    })
575
576    /**
577     * @tc.name QueryLessThanOrEqualToTest001
578     * @tc.desc Test Js Api Query.LessThanOrEqualTo() testcase 001
579     * @tc.type: FUNC
580     * @tc.require: issueNumber
581     */
582    it('QueryLessThanOrEqualToTest001', 0, async function(done) {
583        var query = null;
584        try {
585            query = new ddm.Query();
586            expect("").assertEqual(query.getSqlLike());
587            query.lessThanOrEqualTo("key1", 5);
588            query.lessThanOrEqualTo("key2", 5.0);
589            query.lessThanOrEqualTo("key3", true);
590            query.lessThanOrEqualTo("key4", "string");
591            expect(query.getSqlLike() !== "").assertTrue();
592            console.info("query is " + query.getSqlLike());
593        } catch (e) {
594            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
595            expect(null).assertFail();
596        }
597        query = null;
598        done();
599    })
600
601    /**
602     * @tc.name QueryLessThanOrEqualToTest002
603     * @tc.desc Test Js Api Query.LessThanOrEqualTo() testcase 002
604     * @tc.type: FUNC
605     * @tc.require: issueNumber
606     */
607    it('QueryLessThanOrEqualToTest002', 0, async function(done) {
608        var query = null;
609        try {
610            query = new ddm.Query();
611            expect("").assertEqual(query.getSqlLike());
612            query.lessThanOrEqualTo("key", 5);
613            query.reset();
614            query.lessThanOrEqualTo("key0", 5).lessThanOrEqualTo("key1", "v5").lessThanOrEqualTo("key3", false);
615            expect(query.getSqlLike() !== "").assertTrue();
616            console.info("query is " + query.getSqlLike());
617        } catch (e) {
618            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
619            expect(null).assertFail();
620        }
621        query = null;
622        done();
623    })
624
625    /**
626     * @tc.name QueryLessThanOrEqualToTest003
627     * @tc.desc Test Js Api Query.LessThanOrEqualTo() testcase 003
628     * @tc.type: FUNC
629     * @tc.require: issueNumber
630     */
631    it('QueryLessThanOrEqualToTest003', 0, async function(done) {
632        var query = null;
633        try {
634            query = new ddm.Query();
635            expect("").assertEqual(query.getSqlLike());
636            query.lessThanOrEqualTo("key2", NaN);
637            console.info("query is " + query.getSqlLike());
638        } catch (e) {
639            expect(null).assertFail();
640        }
641        query = null;
642        done();
643    })
644
645    /**
646     * @tc.name QueryLessThanOrEqualToTest004
647     * @tc.desc Test Js Api Query.LessThanOrEqualTo() testcase 004
648     * @tc.type: FUNC
649     * @tc.require: issueNumber
650     */
651    it('QueryLessThanOrEqualToTest004', 0, async function(done) {
652        var query = null;
653        try {
654            query = new ddm.Query();
655            expect("").assertEqual(query.getSqlLike());
656            query.lessThanOrEqualTo("key1", "value", "too more", 4);
657            console.info("should throw exception on invalid arguments");
658            expect(null).assertFail();
659        } catch (e) {
660            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
661        }
662        query = null;
663        done();
664    })
665
666    /**
667     * @tc.name QueryIsNullTest001
668     * @tc.desc Test Js Api Query.IsNull() testcase 001
669     * @tc.type: FUNC
670     * @tc.require: issueNumber
671     */
672    it('QueryIsNullTest001', 0, async function(done) {
673        var query = null;
674        try {
675            query = new ddm.Query();
676            expect("").assertEqual(query.getSqlLike());
677            query.isNull("key");
678            query.isNull("key2");
679            expect(query.getSqlLike() !== "").assertTrue();
680            console.info("query is " + query.getSqlLike());
681        } catch (e) {
682            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
683            expect(null).assertFail();
684        }
685        query = null;
686        done();
687    })
688
689    /**
690     * @tc.name QueryIsNullTest002
691     * @tc.desc Test Js Api Query.IsNull() testcase 002
692     * @tc.type: FUNC
693     * @tc.require: issueNumber
694     */
695    it('QueryIsNullTest002', 0, async function(done) {
696        var query = null;
697        try {
698            query = new ddm.Query();
699            expect("").assertEqual(query.getSqlLike());
700            query.isNull("key").notEqualTo("key1", 4).isNull("key2");
701            expect(query.getSqlLike() !== "").assertTrue();
702            console.info("query is " + query.getSqlLike());
703        } catch (e) {
704            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
705            expect(null).assertFail();
706        }
707        query = null;
708        done();
709    })
710
711    /**
712     * @tc.name QueryIsNullTest003
713     * @tc.desc Test Js Api Query.IsNull() testcase 003
714     * @tc.type: FUNC
715     * @tc.require: issueNumber
716     */
717    it('QueryIsNullTest003', 0, async function(done) {
718        var query = null;
719        try {
720            query = new ddm.Query();
721            expect("").assertEqual(query.getSqlLike());
722            query.isNull("key", 0);
723            console.info("should throw exception on invalid arguments");
724            expect(null).assertFail();
725        } catch (e) {
726            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
727        }
728        query = null;
729        done();
730    })
731
732    /**
733     * @tc.name QueryIsNullTest004
734     * @tc.desc Test Js Api Query.IsNull() testcase 004
735     * @tc.type: FUNC
736     * @tc.require: issueNumber
737     */
738    it('QueryIsNullTest004', 0, async function(done) {
739        var query = null;
740        try {
741            query = new ddm.Query();
742            expect("").assertEqual(query.getSqlLike());
743            query.isNull(0);
744            console.info("should throw exception on invalid arguments");
745            expect(null).assertFail();
746        } catch (e) {
747            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
748        }
749        query = null;
750        done();
751    })
752
753    /*
754    * =======================================================================================
755    *           Int8Array             |  INTEGER
756    *           Uint8Array            |  INTEGER
757    *           Uint8ClampedArray     |  INTEGER
758    *           Int16Array            |  INTEGER
759    *           Uint16Array           |  INTEGER
760    *           Int32Array            |  INTEGER
761    *           Uint32Array           |  LONG
762    *           Float32Array          |  DOUBLE
763    *           Float64Array          |  DOUBLE
764    *           BigInt64Array         |  ERROR: cannot convert to bigint
765    *           BigUint64Array        |  ERROR: cannot convert to bigint
766    * =======================================================================================
767	*           Array                 |  DOUBLE    * not-typedArray treated as array of double.
768    */
769
770    /**
771     * @tc.name QueryInNumberTest001
772     * @tc.desc Test Js Api Query.InNumber() testcase 001
773     * @tc.type: FUNC
774     * @tc.require: issueNumber
775     */
776    it('QueryInNumberTest001', 0, async function(done) {
777        var query = null;
778        try {
779            query = new ddm.Query();
780            expect("").assertEqual(query.getSqlLike());
781            console.info("testInNumber001 start ");
782            var i8 = new Int8Array([-21,31]);
783            query.reset().inNumber("key", i8);
784            console.info("inNumber(Int8Array([-21,31])  => " + query.getSqlLike());
785            var u8 = new Uint8Array([-21,31]);
786            query.reset().inNumber("key", u8);
787            console.info("inNumber(Uint8Array([-21,31])  => " + query.getSqlLike());
788            var c8 = new Uint8ClampedArray([-21,31]);
789            query.reset().inNumber("key", c8);
790            console.info("inNumber(Uint8Array([-21,31])  => " + query.getSqlLike());
791            var i16 = new Int16Array([-21,31]);
792            query.reset().inNumber("key", i16);
793            console.info("inNumber(Int16Array([-21,31])  => " + query.getSqlLike());
794            var u16 = new Uint16Array([-21,31]);
795            query.reset().inNumber("key", u16);
796            console.info("inNumber(Uint16Array([-21,31])  => " + query.getSqlLike());
797            var i32 = new Int32Array([-21, 31]);
798            query.reset().inNumber("key", i32);
799            console.info("inNumber(Int32Array([-21,31])  => " + query.getSqlLike());
800            var u32 = new Uint32Array([-21, 31]);
801            query.reset().inNumber("key", u32);
802            console.info("inNumber(UInt32Array([-21,31])  => " + query.getSqlLike());
803            var f32 = new Float32Array([-21, 31]);
804            query.reset().inNumber("key", f32);
805            console.info("inNumber(Float32Array([-21,31])  => " + query.getSqlLike());
806            var f32e = new Float32Array([21, 31, "a"]); // "a" will be ignored as not a float.
807            query.reset().inNumber("key", f32e);
808            console.info("inNumber(Float32Array([-21,31, 'a'])  => " + query.getSqlLike());
809            var f64 = new Float64Array([-21, 31]);
810            query.reset().inNumber("key", f64);
811            console.info("inNumber(Float64Array([-21,31])  => " + query.getSqlLike());
812            query.reset();
813        } catch (e) {
814            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
815            expect(null).assertFail();
816        }
817        query = null;
818        done();
819    })
820
821    /**
822     * @tc.name QueryInNumberTest002
823     * @tc.desc Test Js Api Query.InNumber() testcase 002
824     * @tc.type: FUNC
825     * @tc.require: issueNumber
826     */
827    it('QueryInNumberTest002', 0, async function(done) {
828        var query = null;
829        try {
830            query = new ddm.Query();
831            expect("").assertEqual(query.getSqlLike());
832            query.inNumber("key", [1, 2.3, 987654]).
833                inNumber("key2", [0x10abcdef]).
834                inNumber("key2", [0xf0123456]).
835                inNumber("key2", [0b10101]);
836            expect(query.getSqlLike() !== "").assertTrue();
837            console.info("query is " + query.getSqlLike());
838        } catch (e) {
839            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
840            expect(null).assertFail();
841        }
842        query = null;
843        done();
844    })
845
846    /**
847     * @tc.name QueryInNumberTest003
848     * @tc.desc Test Js Api Query.InNumber() testcase 003
849     * @tc.type: FUNC
850     * @tc.require: issueNumber
851     */
852    it('QueryInNumberTest003', 0, async function(done) {
853        var query = null;
854        try {
855            query = new ddm.Query();
856            expect("").assertEqual(query.getSqlLike());
857            query.inNumber("key", 0);
858            console.info("should throw exception on invalid arguments");
859            expect(null).assertFail();
860        } catch (e) {
861            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
862        }
863        query = null;
864        done();
865    })
866
867    /**
868     * @tc.name QueryInNumberTest004
869     * @tc.desc Test Js Api Query.InNumber() testcase 004
870     * @tc.type: FUNC
871     * @tc.require: issueNumber
872     */
873    it('QueryInNumberTest004', 0, async function(done) {
874        var query = null;
875        try {
876            query = new ddm.Query();
877            expect("").assertEqual(query.getSqlLike());
878            query.inNumber([0, 1]);
879            console.info("should throw exception on invalid arguments");
880            expect(null).assertFail();
881        } catch (e) {
882            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
883        }
884        query = null;
885        done();
886    })
887
888    /**
889     * @tc.name QueryInNumberTest005
890     * @tc.desc Test Js Api Query.InNumber() testcase 005
891     * @tc.type: FUNC
892     * @tc.require: issueNumber
893     */
894    it('QueryInNumberTest005', 0, async function(done) {
895        var query = null;
896        try {
897            query = new ddm.Query();
898            expect("").assertEqual(query.getSqlLike());
899            var u64 = new BigUint64Array([21, 31]);
900            query.inNumber("key", u64);
901            var b64 = new BigInt64Array([21, 31]);
902            query.inNumber("key", b64);
903            console.info("should throw exception on invalid arguments");
904            expect(null).assertFail();
905        } catch (e) {
906            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
907        }
908        query = null;
909        done();
910    })
911
912    /**
913     * @tc.name QueryInNumberTest006
914     * @tc.desc Test Js Api Query.InNumber() testcase 006
915     * @tc.type: FUNC
916     * @tc.require: issueNumber
917     */
918    it('QueryInNumberTest006', 0, async function(done) {
919        var query = null;
920        try {
921            query = new ddm.Query();
922            console.info("typeof([1, 2, 97])" + typeof([1, 2, 97]))
923            console.info("typeof([1, 2, 97][0])" + typeof([1, 2, 97][0]))
924            query.inNumber("key", [1, 2, 97]);
925            console.info("inNumber([1, 2, 97])  => " + query.getSqlLike());
926            query.reset();
927            query.inNumber("key1", [-1, 3, 987654.123, 0xabc123456]);
928            console.info("inNumber([1, 2, 0xa1234567890123456])  => " + query.getSqlLike());
929            query.reset();
930            query.inNumber("key2", [-1, 3, -987654.123, 0xabc123456]);
931            console.info("inNumber([1, 2, 0xa1234567890123456])  => " + query.getSqlLike());
932            query.reset();
933            query.inNumber("key3", [-1, 4, -987654.123, Number.MAX_VALUE]);
934            console.info("inNumber([1, 2, Number.MAX_VALUE])  => " + query.getSqlLike());
935            query.reset();
936            query.inNumber("key4", [1, -2.3, Number.MIN_VALUE, Number.MAX_VALUE]);
937            console.info("inNumber([1, -2.3, Number.MAX_VALUE])  => " + query.getSqlLike());
938            expect(query.getSqlLike() !== "").assertTrue();
939            console.info("query is " + query.getSqlLike());
940            query.reset();
941        } catch (e) {
942            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
943            expect(null).assertFail();
944        }
945        query = null;
946        done();
947    })
948
949    /**
950     * @tc.name QueryInStringTest001
951     * @tc.desc Test Js Api Query.InString() testcase 001
952     * @tc.type: FUNC
953     * @tc.require: issueNumber
954     */
955    it('QueryInStringTest001', 0, async function(done) {
956        var query = null;
957        try {
958            query = new ddm.Query();
959            expect("").assertEqual(query.getSqlLike());
960            query.inString("key", ["a2z" , 'z2a']);
961            query.inString("key2", ["AAA" ]);
962            console.info("query is " + query.getSqlLike());
963            expect(query.getSqlLike() !== "").assertTrue();
964        } catch (e) {
965            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
966            expect(null).assertFail();
967        }
968        query = null;
969        done();
970    })
971
972    /**
973     * @tc.name QueryInStringTest002
974     * @tc.desc Test Js Api Query.InString() testcase 002
975     * @tc.type: FUNC
976     * @tc.require: issueNumber
977     */
978    it('QueryInStringTest002', 0, async function(done) {
979        var query = null;
980        try {
981            query = new ddm.Query();
982            expect("").assertEqual(query.getSqlLike());
983            query.inString("key", ["a2z" , 'z2a'])
984                .inString("key2", ["AAA" ])
985                .inString("key2", ["AAA", "AAABBB","CCCAAA" ]);
986            expect(query.getSqlLike() !== "").assertTrue();
987            console.info("query is " + query.getSqlLike());
988        } catch (e) {
989            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
990            expect(null).assertFail();
991        }
992        query = null;
993        done();
994    })
995
996    /**
997     * @tc.name QueryInStringTest003
998     * @tc.desc Test Js Api Query.InString() testcase 003
999     * @tc.type: FUNC
1000     * @tc.require: issueNumber
1001     */
1002    it('QueryInStringTest003', 0, async function(done) {
1003        var query = null;
1004        try {
1005            query = new ddm.Query();
1006            expect("").assertEqual(query.getSqlLike());
1007            query.inString("key", 0);
1008            console.info("should throw exception on invalid arguments");
1009            expect(null).assertFail();
1010        } catch (e) {
1011            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1012        }
1013        query = null;
1014        done();
1015    })
1016
1017    /**
1018     * @tc.name QueryInStringTest004
1019     * @tc.desc Test Js Api Query.InString() testcase 004
1020     * @tc.type: FUNC
1021     * @tc.require: issueNumber
1022     */
1023    it('QueryInStringTest004', 0, async function(done) {
1024        var query = null;
1025        try {
1026            query = new ddm.Query();
1027            expect("").assertEqual(query.getSqlLike());
1028            query.inString("key", [0, 1]);
1029            console.info("should throw exception on invalid arguments");
1030            expect(null).assertFail();
1031        } catch (e) {
1032            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1033        }
1034        query = null;
1035        done();
1036    })
1037
1038    /**
1039     * @tc.name QueryNotInNumberTest001
1040     * @tc.desc Test Js Api Query.NotInNumber() testcase 001
1041     * @tc.type: FUNC
1042     * @tc.require: issueNumber
1043     */
1044    it('QueryNotInNumberTest001', 0, async function(done) {
1045        var query = null;
1046        try {
1047            query = new ddm.Query();
1048            expect("").assertEqual(query.getSqlLike());
1049            query.notInNumber("key", [1, 2]);
1050            query.notInNumber("key", [1000]);
1051            expect(query.getSqlLike() !== "").assertTrue();
1052            console.info("query is " + query.getSqlLike());
1053        } catch (e) {
1054            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
1055            expect(null).assertFail();
1056        }
1057        query = null;
1058        done();
1059    })
1060
1061    /**
1062     * @tc.name QueryNotInNumberTest002
1063     * @tc.desc Test Js Api Query.NotInNumber() testcase 002
1064     * @tc.type: FUNC
1065     * @tc.require: issueNumber
1066     */
1067    it('QueryNotInNumberTest002', 0, async function(done) {
1068        var query = null;
1069        try {
1070            query = new ddm.Query();
1071            expect("").assertEqual(query.getSqlLike());
1072            query.notInNumber("key", [1, 2, 3]).notInNumber("key", [1, 7, 8]).notEqualTo("kkk", 5);
1073            expect(query.getSqlLike() !== "").assertTrue();
1074            console.info("query is " + query.getSqlLike());
1075        } catch (e) {
1076            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
1077            expect(null).assertFail();
1078        }
1079        query = null;
1080        done();
1081    })
1082
1083    /**
1084     * @tc.name QueryNotInNumberTest003
1085     * @tc.desc Test Js Api Query.NotInNumber() testcase 003
1086     * @tc.type: FUNC
1087     * @tc.require: issueNumber
1088     */
1089    it('QueryNotInNumberTest003', 0, async function(done) {
1090        var query = null;
1091        try {
1092            query = new ddm.Query();
1093            expect("").assertEqual(query.getSqlLike());
1094            query.notInNumber("key", [1], 2);
1095            console.info("should throw exception on invalid arguments");
1096            expect(null).assertFail();
1097        } catch (e) {
1098            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1099        }
1100        query = null;
1101        done();
1102    })
1103
1104    /**
1105     * @tc.name QueryNotInNumberTest004
1106     * @tc.desc Test Js Api Query.NotInNumber() testcase 004
1107     * @tc.type: FUNC
1108     * @tc.require: issueNumber
1109     */
1110    it('QueryNotInNumberTest004', 0, async function(done) {
1111        var query = null;
1112        try {
1113            query = new ddm.Query();
1114            expect("").assertEqual(query.getSqlLike());
1115            query.notInNumber("key", ["string"]);
1116            expect(query.getSqlLike() !== "").assertTrue();
1117            console.info("should throw exception on invalid arguments");
1118            expect(null).assertFail();
1119        } catch (e) {
1120            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1121        }
1122        query = null;
1123        done();
1124    })
1125
1126    /**
1127     * @tc.name QueryNotInStringTest001
1128     * @tc.desc Test Js Api Query.NotInString() testcase 001
1129     * @tc.type: FUNC
1130     * @tc.require: issueNumber
1131     */
1132    it('QueryNotInStringTest001', 0, async function(done) {
1133        var query = null;
1134        try {
1135            query = new ddm.Query();
1136            expect("").assertEqual(query.getSqlLike());
1137            query.notInString("key", ["v1", "v2"]);
1138            query.notInString("key", ["v1", "NaN"]);
1139            expect(query.getSqlLike() !== "").assertTrue();
1140            console.info("query is " + query.getSqlLike());
1141        } catch (e) {
1142            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
1143            expect(null).assertFail();
1144        }
1145        query = null;
1146        done();
1147    })
1148
1149    /**
1150     * @tc.name QueryNotInStringTest002
1151     * @tc.desc Test Js Api Query.NotInString() testcase 002
1152     * @tc.type: FUNC
1153     * @tc.require: issueNumber
1154     */
1155    it('QueryNotInStringTest002', 0, async function(done) {
1156        var query = null;
1157        try {
1158            query = new ddm.Query();
1159            expect("").assertEqual(query.getSqlLike());
1160            query.notInString("key", ["v1", "v2", "v3"]).notEqualTo("kkk", "v3");
1161            expect(query.getSqlLike() !== "").assertTrue();
1162            console.info("query is " + query.getSqlLike());
1163        } catch (e) {
1164            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
1165            expect(null).assertFail();
1166        }
1167        query = null;
1168        done();
1169    })
1170
1171    /**
1172     * @tc.name QueryNotInStringTest003
1173     * @tc.desc Test Js Api Query.NotInString() testcase 003
1174     * @tc.type: FUNC
1175     * @tc.require: issueNumber
1176     */
1177    it('QueryNotInStringTest003', 0, async function(done) {
1178        var query = null;
1179        try {
1180            query = new ddm.Query();
1181            expect("").assertEqual(query.getSqlLike());
1182            query.notInString("key", ["", "abccd"], 2);
1183            console.info("should throw exception on invalid arguments");
1184            expect(null).assertFail();
1185        } catch (e) {
1186            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1187        }
1188        query = null;
1189        done();
1190    })
1191
1192    /**
1193     * @tc.name QueryNotInStringTest004
1194     * @tc.desc Test Js Api Query.NotInString() testcase 004
1195     * @tc.type: FUNC
1196     * @tc.require: issueNumber
1197     */
1198    it('QueryNotInStringTest004', 0, async function(done) {
1199        var query = null;
1200        try {
1201            query = new ddm.Query();
1202            expect("").assertEqual(query.getSqlLike());
1203            query.notInString("key", [1, 2]);
1204            console.info("should throw exception on invalid arguments");
1205            expect(null).assertFail();
1206        } catch (e) {
1207            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1208        }
1209        query = null;
1210        done();
1211    })
1212
1213    /**
1214     * @tc.name QueryLikeTest001
1215     * @tc.desc Test Js Api Query.Like() testcase 001
1216     * @tc.type: FUNC
1217     * @tc.require: issueNumber
1218     */
1219    it('QueryLikeTest001', 0, async function(done) {
1220        var query = null;
1221        try {
1222            query = new ddm.Query();
1223            expect("").assertEqual(query.getSqlLike());
1224            query.like("key", "v1");
1225            query.like("key2", "v2");
1226            expect(query.getSqlLike() !== "").assertTrue();
1227            console.info("query is " + query.getSqlLike());
1228        } catch (e) {
1229            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
1230            expect(null).assertFail();
1231        }
1232        query = null;
1233        done();
1234    })
1235
1236    /**
1237     * @tc.name QueryLikeTest002
1238     * @tc.desc Test Js Api Query.Like() testcase 002
1239     * @tc.type: FUNC
1240     * @tc.require: issueNumber
1241     */
1242    it('QueryLikeTest002', 0, async function(done) {
1243        var query = null;
1244        try {
1245            query = new ddm.Query();
1246            expect("").assertEqual(query.getSqlLike());
1247            query.like("key", "v1").like("key", "v3").like("key", "v2");
1248            expect(query.getSqlLike() !== "").assertTrue();
1249            console.info("query is " + query.getSqlLike());
1250        } catch (e) {
1251            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
1252            expect(null).assertFail();
1253        }
1254        query = null;
1255        done();
1256    })
1257
1258    /**
1259     * @tc.name QueryLikeTest003
1260     * @tc.desc Test Js Api Query.Like() testcase 003
1261     * @tc.type: FUNC
1262     * @tc.require: issueNumber
1263     */
1264    it('QueryLikeTest003', 0, async function(done) {
1265        var query = null;
1266        try {
1267            query = new ddm.Query();
1268            expect("").assertEqual(query.getSqlLike());
1269            query.like("key", 0);
1270            console.info("should throw exception on invalid arguments");
1271            expect(null).assertFail();
1272        } catch (e) {
1273            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1274        }
1275        query = null;
1276        done();
1277    })
1278
1279    /**
1280     * @tc.name QueryLikeTest004
1281     * @tc.desc Test Js Api Query.Like() testcase 004
1282     * @tc.type: FUNC
1283     * @tc.require: issueNumber
1284     */
1285    it('QueryLikeTest004', 0, async function(done) {
1286        var query = null;
1287        try {
1288            query = new ddm.Query();
1289            expect("").assertEqual(query.getSqlLike());
1290            query.like("key", "str1", "str2");
1291            console.info("should throw exception on invalid arguments");
1292            expect(null).assertFail();
1293        } catch (e) {
1294            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1295        }
1296        query = null;
1297        done();
1298    })
1299
1300    /**
1301     * @tc.name QueryUnlikeTest001
1302     * @tc.desc Test Js Api Query.Unlike() testcase 001
1303     * @tc.type: FUNC
1304     * @tc.require: issueNumber
1305     */
1306    it('QueryUnlikeTest001', 0, async function(done) {
1307        var query = null;
1308        try {
1309            query = new ddm.Query();
1310            expect("").assertEqual(query.getSqlLike());
1311            query.unlike("key", "v1");
1312            expect(query.getSqlLike() !== "").assertTrue();
1313            console.info("query is " + query.getSqlLike());
1314        } catch (e) {
1315            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
1316            expect(null).assertFail();
1317        }
1318        query = null;
1319        done();
1320    })
1321
1322    /**
1323     * @tc.name QueryUnlikeTest002
1324     * @tc.desc Test Js Api Query.Unlike() testcase 002
1325     * @tc.type: FUNC
1326     * @tc.require: issueNumber
1327     */
1328    it('QueryUnlikeTest002', 0, async function(done) {
1329        var query = null;
1330        try {
1331            query = new ddm.Query();
1332            expect("").assertEqual(query.getSqlLike());
1333            query.unlike("key", "v1").unlike("key", "v3").unlike("key", "v2");
1334            expect(query.getSqlLike() !== "").assertTrue();
1335            console.info("query is " + query.getSqlLike());
1336        } catch (e) {
1337            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
1338            expect(null).assertFail();
1339        }
1340        query = null;
1341        done();
1342    })
1343
1344    /**
1345     * @tc.name QueryUnlikeTest003
1346     * @tc.desc Test Js Api Query.Unlike() testcase 003
1347     * @tc.type: FUNC
1348     * @tc.require: issueNumber
1349     */
1350    it('QueryUnlikeTest003', 0, async function(done) {
1351        var query = null;
1352        try {
1353            query = new ddm.Query();
1354            expect("").assertEqual(query.getSqlLike());
1355            query.unlike("key", 0);
1356            console.info("should throw exception on invalid arguments");
1357            expect(null).assertFail();
1358        } catch (e) {
1359            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1360        }
1361        query = null;
1362        done();
1363    })
1364
1365    /**
1366     * @tc.name QueryUnlikeTest004
1367     * @tc.desc Test Js Api Query.Unlike() testcase 004
1368     * @tc.type: FUNC
1369     * @tc.require: issueNumber
1370     */
1371    it('QueryUnlikeTest004', 0, async function(done) {
1372        var query = null;
1373        try {
1374            query = new ddm.Query();
1375            expect("").assertEqual(query.getSqlLike());
1376            query.unlike("key", "str1", "str2");
1377            console.info("should throw exception on invalid arguments");
1378            expect(null).assertFail();
1379        } catch (e) {
1380            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1381        }
1382        query = null;
1383        done();
1384    })
1385
1386    /**
1387     * @tc.name QueryAndTest001
1388     * @tc.desc Test Js Api Query.And() testcase 001
1389     * @tc.type: FUNC
1390     * @tc.require: issueNumber
1391     */
1392    it('QueryAndTest001', 0, async function(done) {
1393        var query = null;
1394        try {
1395            query = new ddm.Query();
1396            expect("").assertEqual(query.getSqlLike());
1397            query.notEqualTo("key", 0);
1398            query.and();
1399            query.notEqualTo("key", "v1");
1400            expect(query.getSqlLike() !== "").assertTrue();
1401            console.info("query is " + query.getSqlLike());
1402        } catch (e) {
1403            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
1404            expect(null).assertFail();
1405        }
1406        query = null;
1407        done();
1408    })
1409
1410    /**
1411     * @tc.name QueryAndTest002
1412     * @tc.desc Test Js Api Query.And() testcase 002
1413     * @tc.type: FUNC
1414     * @tc.require: issueNumber
1415     */
1416    it('QueryAndTest002', 0, async function(done) {
1417        var query = null;
1418        try {
1419            query = new ddm.Query();
1420            expect("").assertEqual(query.getSqlLike());
1421            query.equalTo("key1", 0).and().equalTo("key2", "v1");
1422            expect(query.getSqlLike() !== "").assertTrue();
1423            console.info("query is " + query.getSqlLike());
1424        } catch (e) {
1425            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
1426            expect(null).assertFail();
1427        }
1428        query = null;
1429        done();
1430    })
1431
1432    /**
1433     * @tc.name QueryAndTest003
1434     * @tc.desc Test Js Api Query.And() testcase 003
1435     * @tc.type: FUNC
1436     * @tc.require: issueNumber
1437     */
1438    it('QueryAndTest003', 0, async function(done) {
1439        var query = null;
1440        try {
1441            query = new ddm.Query();
1442            expect("").assertEqual(query.getSqlLike());
1443            query.notEqualTo("key", 0).and().notEqualTo("key", 1).and();
1444            expect(query.getSqlLike() !== "").assertTrue();
1445            query.reset();
1446            console.info("query is " + query.getSqlLike());
1447        } catch (e) {
1448            expect(null).assertFail();
1449        }
1450        query = null;
1451        done();
1452    })
1453
1454    /**
1455     * @tc.name QueryAndTest004
1456     * @tc.desc Test Js Api Query.And() testcase 004
1457     * @tc.type: FUNC
1458     * @tc.require: issueNumber
1459     */
1460    it('QueryAndTest004', 0, async function(done) {
1461        var query = null;
1462        try {
1463            query = new ddm.Query();
1464            expect("").assertEqual(query.getSqlLike());
1465            query.notEqualTo("key", 0).and(1).notInNumber("key", [1, 3]);
1466            console.info("should throw exception on invalid arguments");
1467            expect(null).assertFail();
1468        } catch (e) {
1469            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1470        }
1471        query = null;
1472        done();
1473    })
1474
1475    /**
1476     * @tc.name QueryOrTest001
1477     * @tc.desc Test Js Api Query.Or() testcase 001
1478     * @tc.type: FUNC
1479     * @tc.require: issueNumber
1480     */
1481    it('QueryOrTest001', 0, async function(done) {
1482        var query = null;
1483        try {
1484            query = new ddm.Query();
1485            expect("").assertEqual(query.getSqlLike());
1486            query.notEqualTo("key", 0);
1487            query.or();
1488            query.notEqualTo("key", "v1");
1489            expect(query.getSqlLike() !== "").assertTrue();
1490            console.info("query is " + query.getSqlLike());
1491        } catch (e) {
1492            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
1493            expect(null).assertFail();
1494        }
1495        query = null;
1496        done();
1497    })
1498
1499    /**
1500     * @tc.name QueryOrTest002
1501     * @tc.desc Test Js Api Query.Or() testcase 002
1502     * @tc.type: FUNC
1503     * @tc.require: issueNumber
1504     */
1505    it('QueryOrTest002', 0, async function(done) {
1506        var query = null;
1507        try {
1508            query = new ddm.Query();
1509            expect("").assertEqual(query.getSqlLike());
1510            query.equalTo("key1", 0).or().equalTo("key2", "v1");
1511            expect(query.getSqlLike() !== "").assertTrue();
1512            query.reset();
1513            console.info("query is " + query.getSqlLike());
1514        } catch (e) {
1515            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
1516            expect(null).assertFail();
1517        }
1518        query = null;
1519        done();
1520    })
1521
1522    /**
1523     * @tc.name QueryOrTest003
1524     * @tc.desc Test Js Api Query.Or() testcase 003
1525     * @tc.type: FUNC
1526     * @tc.require: issueNumber
1527     */
1528    it('QueryOrTest003', 0, async function(done) {
1529        var query = null;
1530        try {
1531            query = new ddm.Query();
1532            expect("").assertEqual(query.getSqlLike());
1533            query.notEqualTo("key", 0).or();
1534            console.info("or ... sql:" + query.getSqlLike());
1535            expect(query.getSqlLike() !== "").assertTrue();
1536            query.reset();
1537            console.info("query is " + query.getSqlLike());
1538        } catch (e) {
1539            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1540            expect(null).assertFail();
1541        }
1542        query = null;
1543        done();
1544    })
1545
1546    /**
1547     * @tc.name QueryOrTest004
1548     * @tc.desc Test Js Api Query.Or() testcase 004
1549     * @tc.type: FUNC
1550     * @tc.require: issueNumber
1551     */
1552    it('QueryOrTest004', 0, async function(done) {
1553        var query = null;
1554        try {
1555            query = new ddm.Query();
1556            expect("").assertEqual(query.getSqlLike());
1557            query.notEqualTo("key", 0).or(1).notInNumber("key", [1, 3]);
1558            console.info("should throw exception on invalid arguments");
1559            expect(null).assertFail();
1560        } catch (e) {
1561            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1562        }
1563        query = null;
1564        done();
1565    })
1566
1567    /**
1568     * @tc.name QueryOrderByAscTest001
1569     * @tc.desc Test Js Api Query.OrderByAsc() testcase 001
1570     * @tc.type: FUNC
1571     * @tc.require: issueNumber
1572     */
1573    it('QueryOrderByAscTest001', 0, async function(done) {
1574        var query = null;
1575        try {
1576            query = new ddm.Query();
1577            expect("").assertEqual(query.getSqlLike());
1578            query.notEqualTo("key", 0);
1579            query.orderByAsc("sortbykey");
1580            expect(query.getSqlLike() !== "").assertTrue();
1581            console.info("query is " + query.getSqlLike());
1582        } catch (e) {
1583            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
1584            expect(null).assertFail();
1585        }
1586        query = null;
1587        done();
1588    })
1589
1590    /**
1591     * @tc.name QueryOrderByAscTest002
1592     * @tc.desc Test Js Api Query.OrderByAsc() testcase 002
1593     * @tc.type: FUNC
1594     * @tc.require: issueNumber
1595     */
1596    it('QueryOrderByAscTest002', 0, async function(done) {
1597        var query = null;
1598        try {
1599            query = new ddm.Query();
1600            expect("").assertEqual(query.getSqlLike());
1601            query.notEqualTo("key", "V0").orderByAsc("sortbykey1").orderByAsc("sortbykey2");
1602            expect(query.getSqlLike() !== "").assertTrue();
1603            console.info("query is " + query.getSqlLike());
1604        } catch (e) {
1605            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
1606            expect(null).assertFail();
1607        }
1608        query = null;
1609        done();
1610    })
1611
1612    /**
1613     * @tc.name QueryOrderByAscTest003
1614     * @tc.desc Test Js Api Query.OrderByAsc() testcase 003
1615     * @tc.type: FUNC
1616     * @tc.require: issueNumber
1617     */
1618    it('QueryOrderByAscTest003', 0, async function(done) {
1619        var query = null;
1620        try {
1621            query = new ddm.Query();
1622            expect("").assertEqual(query.getSqlLike());
1623            query.notEqualTo("key", false).orderByAsc(1);
1624            console.info("should throw exception on invalid arguments");
1625            expect(null).assertFail();
1626        } catch (e) {
1627            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1628        }
1629        query = null;
1630        done();
1631    })
1632
1633    /**
1634     * @tc.name QueryOrderByAscTest004
1635     * @tc.desc Test Js Api Query.OrderByAsc() testcase 004
1636     * @tc.type: FUNC
1637     * @tc.require: issueNumber
1638     */
1639    it('QueryOrderByAscTest004', 0, async function(done) {
1640        var query = null;
1641        try {
1642            query = new ddm.Query();
1643            expect("").assertEqual(query.getSqlLike());
1644            query.orderByAsc();
1645            console.info("should throw exception on invalid arguments");
1646            expect(null).assertFail();
1647        } catch (e) {
1648            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1649        }
1650        query = null;
1651        done();
1652    })
1653
1654    /**
1655     * @tc.name QueryOrderByDescTest001
1656     * @tc.desc Test Js Api Query.OrderByDesc() testcase 001
1657     * @tc.type: FUNC
1658     * @tc.require: issueNumber
1659     */
1660    it('QueryOrderByDescTest001', 0, async function(done) {
1661        var query = null;
1662        try {
1663            query = new ddm.Query();
1664            expect("").assertEqual(query.getSqlLike());
1665            query.notEqualTo("key", 0);
1666            query.orderByDesc("sortbykey");
1667            expect(query.getSqlLike() !== "").assertTrue();
1668            console.info("query is " + query.getSqlLike());
1669        } catch (e) {
1670            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
1671            expect(null).assertFail();
1672        }
1673        query = null;
1674        done();
1675    })
1676
1677    /**
1678     * @tc.name QueryOrderByDescTest002
1679     * @tc.desc Test Js Api Query.OrderByDesc() testcase 002
1680     * @tc.type: FUNC
1681     * @tc.require: issueNumber
1682     */
1683    it('QueryOrderByDescTest002', 0, async function(done) {
1684        var query = null;
1685        try {
1686            query = new ddm.Query();
1687            expect("").assertEqual(query.getSqlLike());
1688            query.notEqualTo("key", "V0").orderByDesc("sortbykey1").orderByDesc("sortbykey2");
1689            expect(query.getSqlLike() !== "").assertTrue();
1690            console.info("query is " + query.getSqlLike());
1691        } catch (e) {
1692            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
1693            expect(null).assertFail();
1694        }
1695        query = null;
1696        done();
1697    })
1698
1699    /**
1700     * @tc.name QueryOrderByDescTest003
1701     * @tc.desc Test Js Api Query.OrderByDesc() testcase 003
1702     * @tc.type: FUNC
1703     * @tc.require: issueNumber
1704     */
1705    it('QueryOrderByDescTest003', 0, async function(done) {
1706        var query = null;
1707        try {
1708            query = new ddm.Query();
1709            expect("").assertEqual(query.getSqlLike());
1710            query.notEqualTo("key", false).orderByDesc(1);
1711            console.info("should throw exception on invalid arguments");
1712            expect(null).assertFail();
1713        } catch (e) {
1714            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1715        }
1716        query = null;
1717        done();
1718    })
1719
1720    /**
1721     * @tc.name QueryOrderByDescTest004
1722     * @tc.desc Test Js Api Query.OrderByDesc() testcase 004
1723     * @tc.type: FUNC
1724     * @tc.require: issueNumber
1725     */
1726    it('QueryOrderByDescTest004', 0, async function(done) {
1727        var query = null;
1728        try {
1729            query = new ddm.Query();
1730            expect("").assertEqual(query.getSqlLike());
1731            query.orderByDesc();
1732            console.info("should throw exception on invalid arguments");
1733            expect(null).assertFail();
1734        } catch (e) {
1735            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1736        }
1737        query = null;
1738        done();
1739    })
1740
1741    /**
1742     * @tc.name QueryLimitTest001
1743     * @tc.desc Test Js Api Query.Limit() testcase 001
1744     * @tc.type: FUNC
1745     * @tc.require: issueNumber
1746     */
1747    it('QueryLimitTest001', 0, async function(done) {
1748        var query = null;
1749        try {
1750            query = new ddm.Query();
1751            expect("").assertEqual(query.getSqlLike());
1752            query.notEqualTo("key", "vx");
1753            query.limit(10, 2);
1754            expect(query.getSqlLike() !== "").assertTrue();
1755            console.info("query is " + query.getSqlLike());
1756        } catch (e) {
1757            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
1758            expect(null).assertFail();
1759        }
1760        query = null;
1761        done();
1762    })
1763
1764    /**
1765     * @tc.name QueryLimitTest002
1766     * @tc.desc Test Js Api Query.Limit() testcase 002
1767     * @tc.type: FUNC
1768     * @tc.require: issueNumber
1769     */
1770    it('QueryLimitTest002', 0, async function(done) {
1771        var query = null;
1772        try {
1773            query = new ddm.Query();
1774            expect("").assertEqual(query.getSqlLike());
1775            query.notEqualTo("key", "vx").limit(10, 2)
1776                .equalTo("key2", 2).limit(10, 2);
1777            expect(query.getSqlLike() !== "").assertTrue();
1778            console.info("query is " + query.getSqlLike());
1779        } catch (e) {
1780            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
1781            expect(null).assertFail();
1782        }
1783        query = null;
1784        done();
1785    })
1786
1787    /**
1788     * @tc.name QueryLimitTest003
1789     * @tc.desc Test Js Api Query.Limit() testcase 003
1790     * @tc.type: FUNC
1791     * @tc.require: issueNumber
1792     */
1793    it('QueryLimitTest003', 0, async function(done) {
1794        var query = null;
1795        try {
1796            query = new ddm.Query();
1797            expect("").assertEqual(query.getSqlLike());
1798            query.notEqualTo("key", false).limit(10, 2, "any");
1799            console.info("should throw exception on invalid arguments");
1800            expect(null).assertFail();
1801            console.info("query is " + query.getSqlLike());
1802        } catch (e) {
1803            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1804        }
1805        query = null;
1806        done();
1807    })
1808
1809    /**
1810     * @tc.name QueryLimitTest004
1811     * @tc.desc Test Js Api Query.Limit() testcase 004
1812     * @tc.type: FUNC
1813     * @tc.require: issueNumber
1814     */
1815    it('QueryLimitTest004', 0, async function(done) {
1816        var query = null;
1817        try {
1818            query = new ddm.Query();
1819            expect("").assertEqual(query.getSqlLike());
1820            query.notEqualTo("key", false).limit(10);
1821            console.info("should throw exception on invalid arguments");
1822            expect(null).assertFail();
1823        } catch (e) {
1824            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1825        }
1826        query = null;
1827        done();
1828    })
1829
1830    /**
1831     * @tc.name QueryLimitTest005
1832     * @tc.desc Test Js Api Query.Limit() testcase 005
1833     * @tc.type: FUNC
1834     * @tc.require: issueNumber
1835     */
1836    it('QueryLimitTest005', 0, async function(done) {
1837        var query = null;
1838        try {
1839            query = new ddm.Query();
1840            expect("").assertEqual(query.getSqlLike());
1841            query.notEqualTo("key", false).limit("any", 10);
1842            console.info("should throw exception on invalid arguments");
1843            console.info("query is " + query.getSqlLike());
1844            expect(null).assertFail();
1845        } catch (e) {
1846            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1847        }
1848        query = null;
1849        done();
1850    })
1851
1852    /**
1853     * @tc.name QueryIsNotNullTest001
1854     * @tc.desc Test Js Api Query.IsNotNull() testcase 001
1855     * @tc.type: FUNC
1856     * @tc.require: issueNumber
1857     */
1858    it('QueryIsNotNullTest001', 0, async function(done) {
1859        var query = null;
1860        try {
1861            query = new ddm.Query();
1862            expect("").assertEqual(query.getSqlLike());
1863            query.isNotNull("key");
1864            expect(query.getSqlLike() !== "").assertTrue();
1865            console.info("query is " + query.getSqlLike());
1866        } catch (e) {
1867            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
1868            expect(null).assertFail();
1869        }
1870        query = null;
1871        done();
1872    })
1873
1874    /**
1875     * @tc.name QueryIsNotNullTest002
1876     * @tc.desc Test Js Api Query.IsNotNull() testcase 002
1877     * @tc.type: FUNC
1878     * @tc.require: issueNumber
1879     */
1880    it('QueryIsNotNullTest002', 0, async function(done) {
1881        var query = null;
1882        try {
1883            query = new ddm.Query();
1884            expect("").assertEqual(query.getSqlLike());
1885            query.isNotNull("key1").and().notEqualTo("key1", 123);
1886            expect(query.getSqlLike() !== "").assertTrue();
1887            console.info("query is " + query.getSqlLike());
1888        } catch (e) {
1889            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
1890            expect(null).assertFail();
1891        }
1892        query = null;
1893        done();
1894    })
1895
1896    /**
1897     * @tc.name QueryIsNotNullTest003
1898     * @tc.desc Test Js Api Query.IsNotNull() testcase 003
1899     * @tc.type: FUNC
1900     * @tc.require: issueNumber
1901     */
1902    it('QueryIsNotNullTest003', 0, async function(done) {
1903        var query = null;
1904        try {
1905            query = new ddm.Query();
1906            expect("").assertEqual(query.getSqlLike());
1907            query.isNotNull("key2", "any");
1908            console.info("should throw exception on invalid arguments");
1909            expect(null).assertFail();
1910        } catch (e) {
1911            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1912        }
1913        query = null;
1914        done();
1915    })
1916
1917    /**
1918     * @tc.name QueryIsNotNullTest004
1919     * @tc.desc Test Js Api Query.IsNotNull() testcase 004
1920     * @tc.type: FUNC
1921     * @tc.require: issueNumber
1922     */
1923    it('QueryIsNotNullTest004', 0, async function(done) {
1924        var query = null;
1925        try {
1926            query = new ddm.Query();
1927            expect("").assertEqual(query.getSqlLike());
1928            query.isNotNull(1);
1929            console.info("should throw exception on invalid arguments");
1930            expect(null).assertFail();
1931        } catch (e) {
1932            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
1933        }
1934        query = null;
1935        done();
1936    })
1937
1938    /**
1939     * @tc.name QueryBeginGroupTest001
1940     * @tc.desc Test Js Api Query.BeginGroup() testcase 001
1941     * @tc.type: FUNC
1942     * @tc.require: issueNumber
1943     */
1944    it('QueryBeginGroupTest001', 0, async function(done) {
1945        var query = null;
1946        try {
1947            query = new ddm.Query();
1948            expect("").assertEqual(query.getSqlLike());
1949            query.beginGroup();
1950            query.isNotNull("$.name");
1951            query.endGroup();
1952            expect(query.getSqlLike() !== "").assertTrue();
1953            console.info("query is " + query.getSqlLike());
1954        } catch (e) {
1955            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
1956            expect(null).assertFail();
1957        }
1958        query = null;
1959        done();
1960    })
1961
1962    /**
1963     * @tc.name QueryBeginGroupTest002
1964     * @tc.desc Test Js Api Query.BeginGroup() testcase 002
1965     * @tc.type: FUNC
1966     * @tc.require: issueNumber
1967     */
1968    it('QueryBeginGroupTest002', 0, async function(done) {
1969        var query = null;
1970        try {
1971            query = new ddm.Query();
1972            expect("").assertEqual(query.getSqlLike());
1973            query.beginGroup();
1974            query.beginGroup();
1975            query.notEqualTo("$.name", 0);
1976            query.endGroup();
1977            query.beginGroup();
1978            expect(query.getSqlLike() !== "").assertTrue();
1979            console.info("query is " + query.getSqlLike());
1980        } catch (e) {
1981            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
1982            expect(null).assertFail();
1983        }
1984        query = null;
1985        done();
1986    })
1987
1988    /**
1989     * @tc.name QueryBeginGroupTest003
1990     * @tc.desc Test Js Api Query.BeginGroup() testcase 003
1991     * @tc.type: FUNC
1992     * @tc.require: issueNumber
1993     */
1994    it('QueryBeginGroupTest003', 0, async function(done) {
1995        var query = null;
1996        try {
1997            query = new ddm.Query();
1998            expect("").assertEqual(query.getSqlLike());
1999            query.beginGroup(1);
2000            console.info("should throw exception on invalid arguments");
2001            expect(null).assertFail();
2002        } catch (e) {
2003            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
2004        }
2005        query = null;
2006        done();
2007    })
2008
2009    /**
2010     * @tc.name QueryBeginGroupTest004
2011     * @tc.desc Test Js Api Query.BeginGroup() testcase 004
2012     * @tc.type: FUNC
2013     * @tc.require: issueNumber
2014     */
2015    it('QueryBeginGroupTest004', 0, async function(done) {
2016        var query = null;
2017        try {
2018            query = new ddm.Query();
2019            expect("").assertEqual(query.getSqlLike());
2020            query.beginGroup("any", 1);
2021            console.info("should throw exception on invalid arguments");
2022            expect(null).assertFail();
2023        } catch (e) {
2024            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
2025        }
2026        query = null;
2027        done();
2028    })
2029
2030    /**
2031     * @tc.name QueryEndGroupTest001
2032     * @tc.desc Test Js Api Query.EndGroup() testcase 001
2033     * @tc.type: FUNC
2034     * @tc.require: issueNumber
2035     */
2036    it('QueryEndGroupTest001', 0, async function(done) {
2037        var query = null;
2038        try {
2039            query = new ddm.Query();
2040            expect("").assertEqual(query.getSqlLike());
2041            query.beginGroup();
2042            query.isNotNull("$.name");
2043            query.endGroup();
2044            expect(query.getSqlLike() !== "").assertTrue();
2045            console.info("query is " + query.getSqlLike());
2046        } catch (e) {
2047            expect(null).assertFail();
2048        }
2049        query = null;
2050        done();
2051    })
2052
2053    /**
2054     * @tc.name QueryEndGroupTest002
2055     * @tc.desc Test Js Api Query.EndGroup() testcase 002
2056     * @tc.type: FUNC
2057     * @tc.require: issueNumber
2058     */
2059    it('QueryEndGroupTest002', 0, async function(done) {
2060        var query = null;
2061        try {
2062            query = new ddm.Query();
2063            expect("").assertEqual(query.getSqlLike());
2064            query.endGroup();
2065            query.beginGroup();
2066            query.isNotNull("$.name");
2067            query.endGroup();
2068            expect(query.getSqlLike() !== "").assertTrue();
2069            console.info("query is " + query.getSqlLike());
2070        } catch (e) {
2071            expect(null).assertFail();
2072        }
2073        query = null;
2074        done();
2075    })
2076
2077    /**
2078     * @tc.name QueryEndGroupTest003
2079     * @tc.desc Test Js Api Query.EndGroup() testcase 003
2080     * @tc.type: FUNC
2081     * @tc.require: issueNumber
2082     */
2083    it('QueryEndGroupTest003', 0, async function(done) {
2084        var query = null;
2085        try {
2086            query = new ddm.Query();
2087            expect("").assertEqual(query.getSqlLike());
2088            query.endGroup(0);
2089            console.info("should throw exception on invalid arguments");
2090            expect(null).assertFail();
2091        } catch (e) {
2092            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
2093        }
2094        query = null;
2095        done();
2096    })
2097
2098    /**
2099     * @tc.name QueryEndGroupTest004
2100     * @tc.desc Test Js Api Query.EndGroup() testcase 004
2101     * @tc.type: FUNC
2102     * @tc.require: issueNumber
2103     */
2104    it('QueryEndGroupTest004', 0, async function(done) {
2105        var query = null;
2106        try {
2107            query = new ddm.Query();
2108            expect("").assertEqual(query.getSqlLike());
2109            query.endGroup("any");
2110            console.info("should throw exception on invalid arguments");
2111            expect(null).assertFail();
2112        } catch (e) {
2113            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
2114        }
2115        query = null;
2116        done();
2117    })
2118
2119    /**
2120     * @tc.name QueryPrefixKeyTest001
2121     * @tc.desc Test Js Api Query.PrefixKey() testcase 001
2122     * @tc.type: FUNC
2123     * @tc.require: issueNumber
2124     */
2125    it('QueryPrefixKeyTest001', 0, async function(done) {
2126        var query = null;
2127        try {
2128            query = new ddm.Query();
2129            expect("").assertEqual(query.getSqlLike());
2130            query.prefixKey("$.name");
2131            query.prefixKey("0");
2132            expect(query.getSqlLike() !== "").assertTrue();
2133            console.info("query is " + query.getSqlLike());
2134        } catch (e) {
2135            expect(null).assertFail();
2136        }
2137        query = null;
2138        done();
2139    })
2140
2141    /**
2142     * @tc.name QueryPrefixKeyTest002
2143     * @tc.desc Test Js Api Query.PrefixKey() testcase 002
2144     * @tc.type: FUNC
2145     * @tc.require: issueNumber
2146     */
2147    it('QueryPrefixKeyTest002', 0, async function(done) {
2148        var query = null;
2149        try {
2150            query = new ddm.Query();
2151            expect("").assertEqual(query.getSqlLike());
2152            query.prefixKey("kx1").or().prefixKey("kx2").or().prefixKey("kx3");
2153            expect(query.getSqlLike() !== "").assertTrue();
2154            console.info("query is " + query.getSqlLike());
2155        } catch (e) {
2156            expect(null).assertFail();
2157        }
2158        query = null;
2159        done();
2160    })
2161
2162    /**
2163     * @tc.name QueryPrefixKeyTest003
2164     * @tc.desc Test Js Api Query.PrefixKey() testcase 003
2165     * @tc.type: FUNC
2166     * @tc.require: issueNumber
2167     */
2168    it('QueryPrefixKeyTest003', 0, async function(done) {
2169        var query = null;
2170        try {
2171            query = new ddm.Query();
2172            expect("").assertEqual(query.getSqlLike());
2173            query.prefixKey("k", "any");
2174            console.info("should throw exception on invalid arguments");
2175            expect(null).assertFail();
2176        } catch (e) {
2177            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
2178        }
2179        query = null;
2180        done();
2181    })
2182
2183    /**
2184     * @tc.name QueryPrefixKeyTest004
2185     * @tc.desc Test Js Api Query.PrefixKey() testcase 004
2186     * @tc.type: FUNC
2187     * @tc.require: issueNumber
2188     */
2189    it('QueryPrefixKeyTest004', 0, async function(done) {
2190        var query = null;
2191        try {
2192            query = new ddm.Query();
2193            expect("").assertEqual(query.getSqlLike());
2194            query.prefixKey(123);
2195            console.info("should throw exception on invalid arguments");
2196            expect(null).assertFail();
2197        } catch (e) {
2198            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
2199        }
2200        query = null;
2201        done();
2202    })
2203
2204    /**
2205     * @tc.name QuerySetSuggestIndexTest001
2206     * @tc.desc Test Js Api Query.SetSuggestIndex() testcase 001
2207     * @tc.type: FUNC
2208     * @tc.require: issueNumber
2209     */
2210    it('QuerySetSuggestIndexTest001', 0, async function(done) {
2211        var query = null;
2212        try {
2213            query = new ddm.Query();
2214            expect("").assertEqual(query.getSqlLike());
2215            query.setSuggestIndex("$.name");
2216            query.setSuggestIndex("0");
2217            expect(query.getSqlLike() !== "").assertTrue();
2218            console.info("query is " + query.getSqlLike());
2219        } catch (e) {
2220            expect(null).assertFail();
2221        }
2222        query = null;
2223        done();
2224    })
2225
2226    /**
2227     * @tc.name QuerySetSuggestIndexTest002
2228     * @tc.desc Test Js Api Query.SetSuggestIndex() testcase 002
2229     * @tc.type: FUNC
2230     * @tc.require: issueNumber
2231     */
2232    it('QuerySetSuggestIndexTest002', 0, async function(done) {
2233        var query = null;
2234        try {
2235            query = new ddm.Query();
2236            expect("").assertEqual(query.getSqlLike());
2237            query.setSuggestIndex("kxx").or().equalTo("key2", "v1");
2238            expect(query.getSqlLike() !== "").assertTrue();
2239            console.info("query is " + query.getSqlLike());
2240        } catch (e) {
2241            expect(null).assertFail();
2242        }
2243        query = null;
2244        done();
2245    })
2246
2247    /**
2248     * @tc.name QuerySetSuggestIndexTest003
2249     * @tc.desc Test Js Api Query.SetSuggestIndex() testcase 003
2250     * @tc.type: FUNC
2251     * @tc.require: issueNumber
2252     */
2253    it('QuerySetSuggestIndexTest003', 0, async function(done) {
2254        var query = null;
2255        try {
2256            query = new ddm.Query();
2257            expect("").assertEqual(query.getSqlLike());
2258            query.setSuggestIndex("k", "any");
2259            console.info("should throw exception on invalid arguments");
2260            expect(null).assertFail();
2261        } catch (e) {
2262            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
2263        }
2264        query = null;
2265        done();
2266    })
2267
2268    /**
2269     * @tc.name QuerySetSuggestIndexTest004
2270     * @tc.desc Test Js Api Query.SetSuggestIndex() testcase 004
2271     * @tc.type: FUNC
2272     * @tc.require: issueNumber
2273     */
2274    it('QuerySetSuggestIndexTest004', 0, async function(done) {
2275        var query = null;
2276        try {
2277            query = new ddm.Query();
2278            expect("").assertEqual(query.getSqlLike());
2279            query.setSuggestIndex(123);
2280            console.info("should throw exception on invalid arguments");
2281            expect(null).assertFail();
2282        } catch (e) {
2283            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
2284        }
2285        query = null;
2286        done();
2287    })
2288
2289    /**
2290     * @tc.name QueryDeviceIdTest001
2291     * @tc.desc Test Js Api Query.DeviceId() testcase 001
2292     * @tc.type: FUNC
2293     * @tc.require: issueNumber
2294     */
2295    it('QueryDeviceIdTest001', 0, async function(done) {
2296        var query = null;
2297        try {
2298            query = new ddm.Query();
2299            expect("").assertEqual(query.getSqlLike());
2300            query.deviceId("$.name");
2301            query.deviceId("0");
2302            expect(query.getSqlLike() !== "").assertTrue();
2303            console.info("query is " + query.getSqlLike());
2304        } catch (e) {
2305            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
2306            expect(null).assertFail();
2307        }
2308        query = null;
2309        done();
2310    })
2311
2312    /**
2313     * @tc.name QueryDeviceIdTest002
2314     * @tc.desc Test Js Api Query.DeviceId() testcase 002
2315     * @tc.type: FUNC
2316     * @tc.require: issueNumber
2317     */
2318    it('QueryDeviceIdTest002', 0, async function(done) {
2319        var query = null;
2320        try {
2321            query = new ddm.Query();
2322            expect("").assertEqual(query.getSqlLike());
2323            query.deviceId("kxx").equalTo("key2", "v1");
2324            expect(query.getSqlLike() !== "").assertTrue();
2325            console.info("query is " + query.getSqlLike());
2326        } catch (e) {
2327            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
2328            expect(null).assertFail();
2329        }
2330        query = null;
2331        done();
2332    })
2333
2334    /**
2335     * @tc.name QueryDeviceIdTest003
2336     * @tc.desc Test Js Api Query.DeviceId() testcase 003
2337     * @tc.type: FUNC
2338     * @tc.require: issueNumber
2339     */
2340    it('QueryDeviceIdTest003', 0, async function(done) {
2341        var query = null;
2342        try {
2343            query = new ddm.Query();
2344            expect("").assertEqual(query.getSqlLike());
2345            query.deviceId("k", "any");
2346            console.info("should throw exception on invalid arguments");
2347            expect(null).assertFail();
2348        } catch (e) {
2349            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
2350        }
2351        query = null;
2352        done();
2353    })
2354
2355    /**
2356     * @tc.name QueryDeviceIdTest004
2357     * @tc.desc Test Js Api Query.DeviceId() testcase 004
2358     * @tc.type: FUNC
2359     * @tc.require: issueNumber
2360     */
2361    it('QueryDeviceIdTest004', 0, async function(done) {
2362        var query = null;
2363        try {
2364            query = new ddm.Query();
2365            expect("").assertEqual(query.getSqlLike());
2366            query.deviceId(123);
2367            console.info("should throw exception on invalid arguments");
2368            expect(null).assertFail();
2369        } catch (e) {
2370            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
2371        }
2372        query = null;
2373        done();
2374    })
2375
2376    /**
2377     * @tc.name QueryGetSqlLikeTest001
2378     * @tc.desc Test Js Api Query.GetSqlLike() testcase 001
2379     * @tc.type: FUNC
2380     * @tc.require: issueNumber
2381     */
2382    it('QueryGetSqlLikeTest001', 0, async function(done) {
2383        var query = null;
2384        try {
2385            query = new ddm.Query();
2386            expect("").assertEqual(query.getSqlLike());
2387            let sql1 = query.getSqlLike();
2388            console.info("testGetSqlLike001 sql=" + sql1);
2389            let sql2 = query.getSqlLike();
2390            expect(sql1).assertEqual(sql2);
2391            console.info("query is " + query.getSqlLike());
2392        } catch (e) {
2393            console.error("dumplicated calls should be ok : " + `, error code is ${e.code}, message is ${e.message}`);
2394            expect(null).assertFail();
2395        }
2396        query = null;
2397        done();
2398    })
2399
2400    /**
2401     * @tc.name QueryGetSqlLikeTest002
2402     * @tc.desc Test Js Api Query.GetSqlLike() testcase 002
2403     * @tc.type: FUNC
2404     * @tc.require: issueNumber
2405     */
2406    it('QueryGetSqlLikeTest002', 0, async function(done) {
2407        var query = null;
2408        try {
2409            query = new ddm.Query();
2410            expect("").assertEqual(query.getSqlLike());
2411            let sql1 = query.getSqlLike();
2412            console.info("testGetSqlLike002 sql=" + sql1);
2413            query.inString("key1", ["AAA", "BBB"])
2414                .or()
2415                .notEqualTo("key2", 0);
2416            let sql2 = query.getSqlLike();
2417            console.info("testGetSqlLike002 sql=" + sql2);
2418            console.info("query is " + query.getSqlLike());
2419            expect(sql1 !== sql2).assertTrue();
2420        } catch (e) {
2421            console.error("should be ok on Method Chaining : " + `, error code is ${e.code}, message is ${e.message}`);
2422            expect(null).assertFail();
2423        }
2424        query = null;
2425        done();
2426    })
2427
2428    /**
2429     * @tc.name QueryGetSqlLikeTest003
2430     * @tc.desc Test Js Api Query.GetSqlLike() testcase 003
2431     * @tc.type: FUNC
2432     * @tc.require: issueNumber
2433     */
2434    it('QueryGetSqlLikeTest003', 0, async function(done) {
2435        var query = null;
2436        try {
2437            query = new ddm.Query();
2438            expect("").assertEqual(query.getSqlLike());
2439            query.inNumber("key");
2440            query.getSqlLike(0);
2441            console.info("should throw exception on invalid arguments");
2442            expect(null).assertFail();
2443        } catch (e) {
2444            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
2445        }
2446        query = null;
2447        done();
2448    })
2449
2450    /**
2451     * @tc.name QueryGetSqlLikeTest004
2452     * @tc.desc Test Js Api Query.GetSqlLike() testcase 004
2453     * @tc.type: FUNC
2454     * @tc.require: issueNumber
2455     */
2456    it('QueryGetSqlLikeTest004', 0, async function(done) {
2457        var query = null;
2458        try {
2459            query = new ddm.Query();
2460            expect("").assertEqual(query.getSqlLike());
2461            query.inNumber("key");
2462            query.getSqlLike("any");
2463            console.info("should throw exception on invalid arguments");
2464            expect(null).assertFail();
2465        } catch (e) {
2466            console.error("throw exception is ok : " + `, error code is ${e.code}, message is ${e.message}`);
2467        }
2468        query = null;
2469        done();
2470    })
2471})
2472