• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2025 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 {BusinessError} from "@ohos.base";
16import * as IfaceReadonlyTest from "iface_readonly_test";
17import * as IfaceTest from "iface_test";
18
19loadLibrary("ani_iface");
20
21class SubFoo implements IfaceTest.Foo {
22    bar(): void {}
23
24    name: string = "";
25}
26
27interface Person {
28    get name(): string;
29}
30
31class SubPerson implements Person {
32    readonly name: string = "";
33}
34
35function getIfaceName() {
36    let foo = IfaceTest.getFooIface();
37    let name = foo.name;
38    console.log("foo.name is " + name)
39    assertEQ(name, "foo")
40}
41
42function getIfaceReadonlyName() {
43    let noo = IfaceReadonlyTest.getNooIface();
44    let nooName = noo.name;
45    console.log("noo.name is " + nooName)
46    assertEQ(nooName, "noo")
47}
48
49function setIfaceName() {
50    let foo = IfaceTest.getFooIface();
51    foo.name = "alice"
52    let name = foo.name;
53    console.log("foo.name is " + name)
54    assertEQ(name, "alice")
55}
56
57function printFooName() {
58    let foo = IfaceTest.getFooIface();
59    foo.name = "bob"
60    let name = IfaceTest.printFooName(foo)
61    console.log("foo.name is " + name)
62    assertEQ(name, "bob")
63}
64
65function printNooName() {
66    let noo = IfaceReadonlyTest.getNooIface();
67    let name = IfaceReadonlyTest.printNooName(noo)
68    console.log("noo.name is " + name)
69    assertEQ(name, "noo")
70}
71
72function setSubFooName() {
73    let subFoo = new SubFoo()
74    subFoo.name = "aaa"
75    let name = subFoo.name
76    console.log("subFoo.name is " + name)
77    assertEQ(name, "aaa")
78}
79
80function test_iface_subBaseFun_base() {
81    let sub = IfaceTest.getSubBaseFun();
82    let info = sub.base();
83
84    console.log("sub.base is " + info)
85    assertEQ(info, "SubBaseFun.base")
86}
87
88function test_iface_subBaseElem_base() {
89    let sub = IfaceTest.getSubBaseElem();
90    sub.base = "SubBaseElem.base";
91    let info = sub.base;
92
93    console.log("SubBaseElem.base is " + info)
94    assertEQ(info, "SubBaseElem.base")
95}
96
97function main() {
98    console.log("run main ... IfacePropTest ...")
99    const suite = new ArkTestsuite("IfacePropTest")
100
101    suite.addTest("getIfaceName", getIfaceName)
102    suite.addTest("getIfaceReadonlyName", getIfaceReadonlyName)
103    suite.addTest("setIfaceName", setIfaceName)
104    suite.addTest("printFooName", printFooName)
105    suite.addTest("printNooName", printNooName)
106    suite.addTest("setSubFooName", setSubFooName)
107
108    suite.addTest("test_iface_subBaseFun_base", test_iface_subBaseFun_base)
109    suite.addTest("test_iface_subBaseElem_base", test_iface_subBaseElem_base)
110
111    exit(suite.run())
112}