• 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 OptTest from "opt";
17import * as optionalTest from "optional";
18
19loadLibrary("ani_optional");
20
21function showOptionalInt() {
22    OptTest.showOptionalInt(100 as int)
23}
24
25function showOptionalInt_1() {
26    OptTest.showOptionalInt(undefined)
27}
28
29function makeOptionalInt() {
30    let res = OptTest.makeOptionalInt(true);
31    console.log(res)
32    assertTrue(res != undefined);
33}
34
35function makeOptionalInt_1() {
36    let res = OptTest.makeOptionalInt(false);
37    console.log(res)
38    assertTrue(res == undefined);
39}
40
41function makeOptionalArray() {
42    let res = OptTest.makeOptionalArray(true, 5, 3);
43    console.log(res)
44    assertTrue(res != undefined);
45}
46
47function makeOptionalArray_1() {
48    let res = OptTest.makeOptionalArray(false, 5, 3);
49    console.log(res)
50    assertTrue(res == undefined);
51}
52
53function sendReturnResult() {
54    let result: OptTest.ReturnResult = {results: ["ab", "cd", "ef"]};
55    let res = OptTest.sendReturnResult(result);
56    console.log(res)
57    assertTrue(res != undefined);
58}
59
60function sendReturnResult_1() {
61    let result: OptTest.ReturnResult = {results: undefined};
62    let res = OptTest.sendReturnResult(result);
63    console.log(res)
64    assertTrue(res == undefined);
65}
66
67// 数值类型测试函数
68function func_primitive_i8() {
69    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
70    instance.funcPrimitiveI8(5 as byte)  // byte对应i8
71}
72
73function func_primitive_i16() {
74    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
75    instance.funcPrimitiveI16(42 as short)  // short对应i16
76}
77
78function func_primitive_i32() {
79    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
80    instance.funcPrimitiveI32(1000 as int)  // int对应i32
81}
82
83function func_primitive_i64() {
84    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
85    instance.funcPrimitiveI64(1000000 as long)  // long对应i64
86}
87
88// 浮点类型测试函数
89function func_primitive_f32() {
90    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
91    instance.funcPrimitiveF32(3.14 as float)  // float对应f32
92}
93
94function func_primitive_f64() {
95    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
96    instance.funcPrimitiveF64(2.71828 as double)  // double对应f64
97}
98
99// 布尔类型测试函数
100function func_primitive_bool() {
101    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
102    instance.funcPrimitiveBool(true)
103}
104
105// 字符串类型测试函数
106function func_primitive_string() {
107    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
108    instance.funcPrimitiveString("test_string")
109}
110
111
112function func_Array() {
113    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
114
115    let numbers: int[] = [1, 2, 3, 4, 5];
116    instance.funcArray(numbers)
117}
118
119function func_buffer() {
120    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
121
122    let numbersU8: byte[] = [1, 2, 3, 4, 5];
123    let arrbuf1: ArrayBuffer = new ArrayBuffer(numbersU8.length);
124    for (let i = 0; i < numbersU8.length; i++) {
125        arrbuf1.set(i, numbersU8[i]);
126    }
127    instance.funcBuffer(arrbuf1)
128}
129
130function func_Union() {
131    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
132    instance.funcUnion("hello")
133    instance.funcUnion(1024 as int)
134}
135
136function func_Map() {
137    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
138    let cpus: Record<string, int> = {
139        "cpu0": 10,
140        "cpu1": 20,
141    };
142    instance.funcMap(cpus)
143}
144
145function func_InterfaceName() {
146    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
147    optionalTest.printTestInterfaceName(instance)
148}
149function func_Interfacei8() {
150    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
151    optionalTest.printTestInterfaceNumberi8(instance)
152}
153function func_PrintTestInterfacei16() {
154    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
155    optionalTest.printTestInterfaceNumberi16(instance);
156}
157
158function func_PrintTestInterfacei32() {
159    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
160    optionalTest.printTestInterfaceNumberi32(instance);
161}
162
163function func_PrintTestInterfacei64() {
164    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
165    optionalTest.printTestInterfaceNumberi64(instance);
166}
167
168function func_PrintTestInterfacef32() {
169    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
170    optionalTest.printTestInterfaceNumberf32(instance);
171}
172
173function func_PrintTestInterfacef64() {
174    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
175    optionalTest.printTestInterfaceNumberf64(instance);
176}
177
178function func_PrintTestInterfacebool() {
179    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
180    optionalTest.printTestInterfacebool(instance);
181}
182
183function func_PrintTestInterfaceArraybuffer() {
184    let instance: optionalTest.ExampleInterface = optionalTest.getInterface();
185    optionalTest.printTestInterfaceArraybuffer(instance);
186}
187
188function func_showOptionalString(){
189    let instance: OptTest.Test = OptTest.getTest();
190    let str = "this is string data";
191    let result = instance.showOptionalString(str);
192    assertEQ(result, "this is string data");
193}
194
195function func_showOptionalString_1(){
196    let instance: OptTest.Test = OptTest.getTest();
197    let result = instance.showOptionalString(undefined);
198    assertTrue(result == undefined);
199}
200
201function func_getTest_setIntData(){
202    let instance: OptTest.Test = OptTest.getTest();
203    instance.setIntData("this is str");
204}
205
206function func_getTest_property(){
207    let instance: OptTest.Test = OptTest.getTest();
208    instance.string = "this is string value";
209    let res = instance.string;
210    assertEQ(res, "this is string value");
211}
212
213function func_getTest_property_1(){
214    let instance: OptTest.Test = OptTest.getTest();
215    instance.string = undefined;
216    let res = instance.string;
217    assertEQ(res, undefined);
218}
219
220function func_showOptionalInt32(){
221    let instance: OptTest.Test = OptTest.getTest();
222    let intValue = 12;
223    let res = instance.showOptionalInt32(intValue);
224    assertEQ(res, 12);
225}
226
227function func_showOptionalInt32_1(){
228    let instance: OptTest.Test = OptTest.getTest();
229    let res = instance.showOptionalInt32(undefined);
230    assertEQ(res, undefined);
231}
232
233function func_showOptionalBool(){
234    let instance: OptTest.Test = OptTest.getTest();
235    let res = instance.showOptionalBool(true);
236    assertEQ(res, true);
237}
238
239function func_showOptionalBool_1(){
240    let instance: OptTest.Test = OptTest.getTest();
241    let res = instance.showOptionalBool(undefined);
242    assertEQ(res, undefined);
243}
244
245function func_showOptionalRecord(){
246    let instance: OptTest.Test = OptTest.getTest();
247    let data: Record<string, boolean> = {"key1": false};
248    let res = instance.showOptionalRecord(data) as Record<string, boolean>;
249    assertEQ(res.toString(), data.toString());
250}
251
252function func_showOptionalRecord_1(){
253    let instance: OptTest.Test = OptTest.getTest();
254    let res = instance.showOptionalRecord(undefined);
255    assertEQ(res, undefined);
256}
257
258function func_showOptionalStruct(){
259    let instance: OptTest.Test = OptTest.getTest();
260    let data: OptTest.MyStruct = {param1: 12, param2: "string data"} ;
261    let res = instance.showOptionalStruct(data) as OptTest.MyStruct;
262    assertEQ(res.toString(), data.toString());
263}
264
265function func_showOptionalStruct_1(){
266    let instance: OptTest.Test = OptTest.getTest();
267    let res = instance.showOptionalStruct(undefined);
268    assertEQ(res, undefined);
269}
270
271function main() {
272    console.log("run main ... OptTest ...")
273
274    const suite = new ArkTestsuite("OptTest")
275    suite.addTest("showOptionalInt", showOptionalInt)
276    suite.addTest("showOptionalInt_1", showOptionalInt_1)
277    suite.addTest("makeOptionalInt", makeOptionalInt)
278    suite.addTest("makeOptionalInt_1", makeOptionalInt_1)
279    suite.addTest("makeOptionalArray", makeOptionalArray)
280    suite.addTest("makeOptionalArray_1", makeOptionalArray_1)
281    suite.addTest("sendReturnResult", sendReturnResult)
282    suite.addTest("sendReturnResult_1", sendReturnResult_1)
283    suite.addTest("i8 parameter test", func_primitive_i8)
284    suite.addTest("i16 parameter test", func_primitive_i16)
285    suite.addTest("i32 parameter test", func_primitive_i32)
286    suite.addTest("i64 parameter test", func_primitive_i64)
287    suite.addTest("f32 parameter test", func_primitive_f32)
288    suite.addTest("f64 parameter test", func_primitive_f64)
289    suite.addTest("bool parameter test", func_primitive_bool)
290    suite.addTest("bool parameter test", func_primitive_string)
291    suite.addTest("Array parameter test", func_Array)
292    suite.addTest("buffer parameter test", func_buffer)
293    suite.addTest("Union parameter test", func_Union)
294    suite.addTest("Map parameter test", func_Map)
295
296    suite.addTest("func_InterfaceName test", func_InterfaceName)
297    suite.addTest("func_Interfacei8 test", func_Interfacei8)
298    suite.addTest("func_PrintTestInterfacei16 test", func_PrintTestInterfacei16);
299    suite.addTest("func_PrintTestInterfacei32 test", func_PrintTestInterfacei32);
300    suite.addTest("func_PrintTestInterfacei64 test", func_PrintTestInterfacei64);
301    suite.addTest("func_PrintTestInterfacef32 test", func_PrintTestInterfacef32);
302    suite.addTest("func_PrintTestInterfacef64 test", func_PrintTestInterfacef64);
303    suite.addTest("func_PrintTestInterfacebool test", func_PrintTestInterfacebool);
304    suite.addTest("func_PrintTestInterfaceArraybuffer test",func_PrintTestInterfaceArraybuffer);
305
306    suite.addTest("func_showOptionalString", func_showOptionalString)
307    suite.addTest("func_showOptionalString_1", func_showOptionalString_1)
308    suite.addTest("func_getTest_setIntData", func_getTest_setIntData)
309    suite.addTest("func_getTest_property", func_getTest_property)
310    suite.addTest("func_getTest_property_1", func_getTest_property_1)
311    suite.addTest("func_showOptionalInt32", func_showOptionalInt32)
312    suite.addTest("func_showOptionalInt32_1", func_showOptionalInt32_1)
313    suite.addTest("func_showOptionalBool", func_showOptionalBool)
314    suite.addTest("func_showOptionalBool_1", func_showOptionalBool_1)
315    suite.addTest("func_showOptionalRecord", func_showOptionalRecord)
316    suite.addTest("func_showOptionalRecord_1", func_showOptionalRecord_1)
317    suite.addTest("func_showOptionalStruct", func_showOptionalStruct)
318    suite.addTest("func_showOptionalStruct_1", func_showOptionalStruct_1)
319    exit(suite.run());
320}