1886da342Sopenharmony_ci/*
2886da342Sopenharmony_ci * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
3886da342Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4886da342Sopenharmony_ci * you may not use this file except in compliance with the License.
5886da342Sopenharmony_ci * You may obtain a copy of the License at
6886da342Sopenharmony_ci *
7886da342Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8886da342Sopenharmony_ci *
9886da342Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10886da342Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11886da342Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12886da342Sopenharmony_ci * See the License for the specific language governing permissions and
13886da342Sopenharmony_ci * limitations under the License.
14886da342Sopenharmony_ci */
15886da342Sopenharmony_ci
16886da342Sopenharmony_ciimport assertNull from './assertNull';
17886da342Sopenharmony_ciimport assertClose from './assertClose';
18886da342Sopenharmony_ciimport assertContain from './assertContain';
19886da342Sopenharmony_ciimport assertLess from './assertLess';
20886da342Sopenharmony_ciimport assertLarger from './assertLarger';
21886da342Sopenharmony_ciimport assertFail from './assertFail';
22886da342Sopenharmony_ciimport assertUndefined from './assertUndefined';
23886da342Sopenharmony_ciimport assertFalse from './assertFalse';
24886da342Sopenharmony_ciimport assertInstanceOf from './assertInstanceOf';
25886da342Sopenharmony_ciimport assertThrowError from './assertThrowError';
26886da342Sopenharmony_ciimport assertLargerOrEqual from './assertLargerOrEqual';
27886da342Sopenharmony_ciimport assertLessOrEqual from './assertLessOrEqual';
28886da342Sopenharmony_ciimport assertNaN from './assertNaN';
29886da342Sopenharmony_ciimport assertNegUnlimited from './assertNegUnlimited';
30886da342Sopenharmony_ciimport assertPosUnlimited from './assertPosUnlimited';
31886da342Sopenharmony_ciimport assertDeepEquals from './deepEquals/assertDeepEquals';
32886da342Sopenharmony_ciimport assertPromiseIsPending from './assertPromiseIsPending';
33886da342Sopenharmony_ciimport assertPromiseIsRejected from './assertPromiseIsRejected';
34886da342Sopenharmony_ciimport assertPromiseIsRejectedWith from './assertPromiseIsRejectedWith';
35886da342Sopenharmony_ciimport assertPromiseIsRejectedWithError from './assertPromiseIsRejectedWithError';
36886da342Sopenharmony_ciimport assertPromiseIsResolved from './assertPromiseIsResolved';
37886da342Sopenharmony_ciimport assertPromiseIsResolvedWith from './assertPromiseIsResolvedWith';
38886da342Sopenharmony_ciclass ExpectExtend {
39886da342Sopenharmony_ci    constructor(attr) {
40886da342Sopenharmony_ci        this.id = attr.id;
41886da342Sopenharmony_ci        this.matchers = {};
42886da342Sopenharmony_ci    }
43886da342Sopenharmony_ci
44886da342Sopenharmony_ci    extendsMatchers() {
45886da342Sopenharmony_ci        this.matchers.assertNull = assertNull;
46886da342Sopenharmony_ci        this.matchers.assertClose = assertClose;
47886da342Sopenharmony_ci        this.matchers.assertContain = assertContain;
48886da342Sopenharmony_ci        this.matchers.assertLess = assertLess;
49886da342Sopenharmony_ci        this.matchers.assertLarger = assertLarger;
50886da342Sopenharmony_ci        this.matchers.assertFail = assertFail;
51886da342Sopenharmony_ci        this.matchers.assertUndefined = assertUndefined;
52886da342Sopenharmony_ci        this.matchers.assertFalse = assertFalse;
53886da342Sopenharmony_ci        this.matchers.assertInstanceOf = assertInstanceOf;
54886da342Sopenharmony_ci        this.matchers.assertThrowError = assertThrowError;
55886da342Sopenharmony_ci        this.matchers.assertLargerOrEqual = assertLargerOrEqual;
56886da342Sopenharmony_ci        this.matchers.assertLessOrEqual = assertLessOrEqual;
57886da342Sopenharmony_ci        this.matchers.assertNaN = assertNaN;
58886da342Sopenharmony_ci        this.matchers.assertNegUnlimited = assertNegUnlimited;
59886da342Sopenharmony_ci        this.matchers.assertPosUnlimited = assertPosUnlimited;
60886da342Sopenharmony_ci        this.matchers.assertDeepEquals = assertDeepEquals;
61886da342Sopenharmony_ci        this.matchers.assertPromiseIsPending = assertPromiseIsPending;
62886da342Sopenharmony_ci        this.matchers.assertPromiseIsRejected = assertPromiseIsRejected;
63886da342Sopenharmony_ci        this.matchers.assertPromiseIsRejectedWith = assertPromiseIsRejectedWith;
64886da342Sopenharmony_ci        this.matchers.assertPromiseIsRejectedWithError = assertPromiseIsRejectedWithError;
65886da342Sopenharmony_ci        this.matchers.assertPromiseIsResolved = assertPromiseIsResolved;
66886da342Sopenharmony_ci        this.matchers.assertPromiseIsResolvedWith = assertPromiseIsResolvedWith;
67886da342Sopenharmony_ci    }
68886da342Sopenharmony_ci
69886da342Sopenharmony_ci    init(coreContext) {
70886da342Sopenharmony_ci        this.coreContext = coreContext;
71886da342Sopenharmony_ci        this.extendsMatchers();
72886da342Sopenharmony_ci        const expectService = this.coreContext.getDefaultService('expect');
73886da342Sopenharmony_ci        expectService.addMatchers(this.matchers);
74886da342Sopenharmony_ci    }
75886da342Sopenharmony_ci
76886da342Sopenharmony_ci    apis() {
77886da342Sopenharmony_ci        return {
78886da342Sopenharmony_ci            'expect': function (actualValue) {
79886da342Sopenharmony_ci                return this.coreContext.getDefaultService('expect').expect(actualValue);
80886da342Sopenharmony_ci            }
81886da342Sopenharmony_ci        };
82886da342Sopenharmony_ci    }
83886da342Sopenharmony_ci}
84886da342Sopenharmony_ci
85886da342Sopenharmony_ciexport default ExpectExtend;
86