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}