1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 package test.codemaker.javamaker; 25 26 import com.sun.star.comp.helper.Bootstrap; 27 import com.sun.star.lang.XEventListener; 28 import com.sun.star.uno.Any; 29 import com.sun.star.uno.DeploymentException; 30 import com.sun.star.uno.Type; 31 import com.sun.star.uno.XComponentContext; 32 import com.sun.star.uno.XNamingService; 33 import complexlib.ComplexTestCase; 34 import java.util.EventListener; 35 import test.codemaker.javamaker.Enum1; 36 import test.codemaker.javamaker.Enum2; 37 import test.codemaker.javamaker.PolyStruct; 38 import test.codemaker.javamaker.S2; 39 import test.codemaker.javamaker.Struct2; 40 import test.codemaker.javamaker.services.service_abstract; 41 import test.codemaker.javamaker.services.service_assert; 42 import test.codemaker.javamaker.services.service_break; 43 import test.codemaker.javamaker.services.service_catch; 44 import test.codemaker.javamaker.services.service_class; 45 import test.codemaker.javamaker.services.service_continue; 46 import test.codemaker.javamaker.services.service_do; 47 import test.codemaker.javamaker.services.service_else; 48 import test.codemaker.javamaker.services.service_extends; 49 import test.codemaker.javamaker.services.service_final; 50 import test.codemaker.javamaker.services.service_finally; 51 import test.codemaker.javamaker.services.service_for; 52 import test.codemaker.javamaker.services.service_goto; 53 import test.codemaker.javamaker.services.service_if; 54 import test.codemaker.javamaker.services.service_implements; 55 import test.codemaker.javamaker.services.service_import; 56 import test.codemaker.javamaker.services.service_instanceof; 57 import test.codemaker.javamaker.services.service_int; 58 import test.codemaker.javamaker.services.service_native; 59 import test.codemaker.javamaker.services.service_new; 60 import test.codemaker.javamaker.services.service_package; 61 import test.codemaker.javamaker.services.service_private; 62 import test.codemaker.javamaker.services.service_protected; 63 import test.codemaker.javamaker.services.service_public; 64 import test.codemaker.javamaker.services.service_return; 65 import test.codemaker.javamaker.services.service_static; 66 import test.codemaker.javamaker.services.service_strictfp; 67 import test.codemaker.javamaker.services.service_super; 68 import test.codemaker.javamaker.services.service_synchronized; 69 import test.codemaker.javamaker.services.service_this; 70 import test.codemaker.javamaker.services.service_throw; 71 import test.codemaker.javamaker.services.service_throws; 72 import test.codemaker.javamaker.services.service_try; 73 import test.codemaker.javamaker.services.service_volatile; 74 import test.codemaker.javamaker.services.service_while; 75 import test.codemaker.javamaker.singleton_abstract; 76 77 public final class Test extends ComplexTestCase { getTestMethodNames()78 public String[] getTestMethodNames() { 79 return new String[] { 80 "testEnum1", "testEnum2", "testPolyStruct", "testEmptyStruct2", 81 "testFullStruct2", "testXEventListener", "testS1", "testS2", 82 "testKeywordServices", "testSingletons" }; 83 } 84 before()85 public void before() throws Exception { 86 context = Bootstrap.createInitialComponentContext(null); 87 } 88 testEnum1()89 public void testEnum1() { 90 assure(Enum1.VALUE1.getValue() == -100); 91 assure(Enum1.VALUE2.getValue() == 100); 92 assure(Enum1.VALUE1_value == -100); 93 assure(Enum1.VALUE2_value == 100); 94 assure(Enum1.getDefault() == Enum1.VALUE1); 95 assure(Enum1.fromInt(-101) == null); 96 assure(Enum1.fromInt(-100) == Enum1.VALUE1); 97 assure(Enum1.fromInt(-99) == null); 98 assure(Enum1.fromInt(0) == null); 99 assure(Enum1.fromInt(99) == null); 100 assure(Enum1.fromInt(100) == Enum1.VALUE2); 101 assure(Enum1.fromInt(101) == null); 102 } 103 testEnum2()104 public void testEnum2() { 105 assure(Enum2.VALUE0.getValue() == 0); 106 assure(Enum2.VALUE1.getValue() == 1); 107 assure(Enum2.VALUE2.getValue() == 2); 108 assure(Enum2.VALUE4.getValue() == 4); 109 assure(Enum2.VALUE0_value == 0); 110 assure(Enum2.VALUE1_value == 1); 111 assure(Enum2.VALUE2_value == 2); 112 assure(Enum2.VALUE4_value == 4); 113 assure(Enum2.getDefault() == Enum2.VALUE0); 114 assure(Enum2.fromInt(-1) == null); 115 assure(Enum2.fromInt(0) == Enum2.VALUE0); 116 assure(Enum2.fromInt(1) == Enum2.VALUE1); 117 assure(Enum2.fromInt(2) == Enum2.VALUE2); 118 assure(Enum2.fromInt(3) == null); 119 assure(Enum2.fromInt(4) == Enum2.VALUE4); 120 assure(Enum2.fromInt(5) == null); 121 } 122 testPolyStruct()123 public void testPolyStruct() { 124 PolyStruct s = new PolyStruct(); 125 assure(s.member1 == null); 126 assure(s.member2 == 0); 127 s = new PolyStruct("ABC", 5); 128 assure(s.member1.equals("ABC")); 129 assure(s.member2 == 5); 130 } 131 testEmptyStruct2()132 public void testEmptyStruct2() { 133 Struct2 s = new Struct2(); 134 assure(s.p1 == false); 135 assure(s.p2 == 0); 136 assure(s.p3 == 0); 137 assure(s.p4 == 0); 138 assure(s.p5 == 0); 139 assure(s.p6 == 0); 140 assure(s.p7 == 0L); 141 assure(s.p8 == 0L); 142 assure(s.p9 == 0.0f); 143 assure(s.p10 == 0.0); 144 assure(s.p11 == '\u0000'); 145 assure(s.p12.equals("")); 146 assure(s.p13.equals(Type.VOID)); 147 assure(s.p14.equals(Any.VOID)); 148 assure(s.p15 == Enum2.VALUE0); 149 assure(s.p16.member1 == 0); 150 assure(s.p17 == null); 151 assure(s.p18 == null); 152 assure(s.t1 == false); 153 assure(s.t2 == 0); 154 assure(s.t3 == 0); 155 assure(s.t4 == 0); 156 assure(s.t5 == 0); 157 assure(s.t6 == 0); 158 assure(s.t7 == 0L); 159 assure(s.t8 == 0L); 160 assure(s.t9 == 0.0f); 161 assure(s.t10 == 0.0); 162 assure(s.t11 == '\u0000'); 163 assure(s.t12.equals("")); 164 assure(s.t13.equals(Type.VOID)); 165 assure(s.t14.equals(Any.VOID)); 166 assure(s.t15 == Enum2.VALUE0); 167 assure(s.t16.member1 == 0); 168 assure(s.t17 == null); 169 assure(s.t18 == null); 170 assure(s.a1.length == 0); 171 assure(s.a2.length == 0); 172 assure(s.a3.length == 0); 173 assure(s.a4.length == 0); 174 assure(s.a5.length == 0); 175 assure(s.a6.length == 0); 176 assure(s.a7.length == 0); 177 assure(s.a8.length == 0); 178 assure(s.a9.length == 0); 179 assure(s.a10.length == 0); 180 assure(s.a11.length == 0); 181 assure(s.a12.length == 0); 182 assure(s.a13.length == 0); 183 assure(s.a14.length == 0); 184 assure(s.a15.length == 0); 185 assure(s.a16.length == 0); 186 assure(s.a17.length == 0); 187 assure(s.a18.length == 0); 188 assure(s.aa1.length == 0); 189 assure(s.aa2.length == 0); 190 assure(s.aa3.length == 0); 191 assure(s.aa4.length == 0); 192 assure(s.aa5.length == 0); 193 assure(s.aa6.length == 0); 194 assure(s.aa7.length == 0); 195 assure(s.aa8.length == 0); 196 assure(s.aa9.length == 0); 197 assure(s.aa10.length == 0); 198 assure(s.aa11.length == 0); 199 assure(s.aa12.length == 0); 200 assure(s.aa13.length == 0); 201 assure(s.aa14.length == 0); 202 assure(s.aa15.length == 0); 203 assure(s.aa16.length == 0); 204 assure(s.aa17.length == 0); 205 assure(s.aa18.length == 0); 206 assure(s.at1.length == 0); 207 assure(s.at2.length == 0); 208 assure(s.at3.length == 0); 209 assure(s.at4.length == 0); 210 assure(s.at5.length == 0); 211 assure(s.at6.length == 0); 212 assure(s.at7.length == 0); 213 assure(s.at8.length == 0); 214 assure(s.at9.length == 0); 215 assure(s.at10.length == 0); 216 assure(s.at11.length == 0); 217 assure(s.at12.length == 0); 218 assure(s.at13.length == 0); 219 assure(s.at14.length == 0); 220 assure(s.at15.length == 0); 221 assure(s.at16.length == 0); 222 assure(s.at17.length == 0); 223 assure(s.at18.length == 0); 224 } 225 testFullStruct2()226 public void testFullStruct2() { 227 //TODO: 228 Struct2 s = new Struct2( 229 true, (byte) 1, (short) 2, (short) 3, 4, 5, 6L, 7L, 0.8f, 0.9, 'A', 230 "BCD", Type.UNSIGNED_HYPER, new Integer(22), Enum2.VALUE4, 231 new Struct1(1), null, null, false, (byte) 0, (short) 0, (short) 0, 232 0, 0, 0L, 0L, 0.0f, 0.0, '\u0000', "", Type.VOID, Any.VOID, 233 Enum2.VALUE0, new Struct1(), null, null, 234 new boolean[] { false, true }, new byte[] { (byte) 1, (byte) 2 }, 235 new short[0], new short[0], new int[0], new int[0], 236 new long[0], new long[0], new float[0], new double[0], new char[0], 237 new String[0], new Type[0], new Object[0], new Enum2[0], 238 new Struct1[] { new Struct1(1), new Struct1(2) }, new Object[0], 239 new XNamingService[0], new boolean[0][], new byte[0][], 240 new short[0][], new short[0][], new int[0][], new int[0][], 241 new long[0][], new long[0][], new float[0][], new double[0][], 242 new char[0][], new String[0][], new Type[0][], new Object[0][], 243 new Enum2[0][], new Struct1[0][], new Object[0][], 244 new XNamingService[0][], new boolean[0][], new byte[0][], 245 new short[0][], new short[0][], new int[0][], new int[0][], 246 new long[0][], new long[0][], new float[0][], new double[0][], 247 new char[0][], new String[0][], new Type[0][], new Object[0][], 248 new Enum2[0][], new Struct1[0][], new Object[0][], 249 new XNamingService[0][]); 250 assure(s.p1 == true); 251 assure(s.p2 == 1); 252 assure(s.p3 == 2); 253 assure(s.p4 == 3); 254 assure(s.p5 == 4); 255 assure(s.p6 == 5); 256 assure(s.p7 == 6L); 257 assure(s.p8 == 7L); 258 assure(s.p9 == 0.8f); 259 assure(s.p10 == 0.9); 260 assure(s.p11 == 'A'); 261 assure(s.p12.equals("BCD")); 262 assure(s.p13.equals(Type.UNSIGNED_HYPER)); 263 assure(s.p14.equals(new Integer(22))); 264 assure(s.p15 == Enum2.VALUE4); 265 assure(s.p16.member1 == 1); 266 assure(s.p17 == null); 267 assure(s.p18 == null); 268 assure(s.t1 == false); 269 assure(s.t2 == 0); 270 assure(s.t3 == 0); 271 assure(s.t4 == 0); 272 assure(s.t5 == 0); 273 assure(s.t6 == 0); 274 assure(s.t7 == 0L); 275 assure(s.t8 == 0L); 276 assure(s.t9 == 0.0f); 277 assure(s.t10 == 0.0); 278 assure(s.t11 == '\u0000'); 279 assure(s.t12.equals("")); 280 assure(s.t13.equals(Type.VOID)); 281 assure(s.t14.equals(Any.VOID)); 282 assure(s.t15 == Enum2.VALUE0); 283 assure(s.t16.member1 == 0); 284 assure(s.t17 == null); 285 assure(s.t18 == null); 286 assure(s.a1.length == 2); 287 assure(s.a1[0] == false); 288 assure(s.a1[1] == true); 289 assure(s.a2.length == 2); 290 assure(s.a2[0] == 1); 291 assure(s.a2[1] == 2); 292 assure(s.a3.length == 0); 293 assure(s.a4.length == 0); 294 assure(s.a5.length == 0); 295 assure(s.a6.length == 0); 296 assure(s.a7.length == 0); 297 assure(s.a8.length == 0); 298 assure(s.a9.length == 0); 299 assure(s.a10.length == 0); 300 assure(s.a11.length == 0); 301 assure(s.a12.length == 0); 302 assure(s.a13.length == 0); 303 assure(s.a14.length == 0); 304 assure(s.a15.length == 0); 305 assure(s.a16.length == 2); 306 assure(s.a16[0].member1 == 1); 307 assure(s.a16[1].member1 == 2); 308 assure(s.a17.length == 0); 309 assure(s.a18.length == 0); 310 assure(s.aa1.length == 0); 311 assure(s.aa2.length == 0); 312 assure(s.aa3.length == 0); 313 assure(s.aa4.length == 0); 314 assure(s.aa5.length == 0); 315 assure(s.aa6.length == 0); 316 assure(s.aa7.length == 0); 317 assure(s.aa8.length == 0); 318 assure(s.aa9.length == 0); 319 assure(s.aa10.length == 0); 320 assure(s.aa11.length == 0); 321 assure(s.aa12.length == 0); 322 assure(s.aa13.length == 0); 323 assure(s.aa14.length == 0); 324 assure(s.aa15.length == 0); 325 assure(s.aa16.length == 0); 326 assure(s.aa17.length == 0); 327 assure(s.aa18.length == 0); 328 assure(s.at1.length == 0); 329 assure(s.at2.length == 0); 330 assure(s.at3.length == 0); 331 assure(s.at4.length == 0); 332 assure(s.at5.length == 0); 333 assure(s.at6.length == 0); 334 assure(s.at7.length == 0); 335 assure(s.at8.length == 0); 336 assure(s.at9.length == 0); 337 assure(s.at10.length == 0); 338 assure(s.at11.length == 0); 339 assure(s.at12.length == 0); 340 assure(s.at13.length == 0); 341 assure(s.at14.length == 0); 342 assure(s.at15.length == 0); 343 assure(s.at16.length == 0); 344 assure(s.at17.length == 0); 345 assure(s.at18.length == 0); 346 } 347 testXEventListener()348 public void testXEventListener() { 349 assure(EventListener.class.isAssignableFrom(XEventListener.class)); 350 } 351 testS1()352 public void testS1() throws com.sun.star.uno.Exception { 353 //TODO: 354 try { 355 S1.create1(context); 356 failed("S1.create1"); 357 } catch (DeploymentException e) {} 358 try { 359 S1.create2(context, new Any[0]); 360 failed("S1.create2"); 361 } catch (com.sun.star.uno.Exception e) {} 362 try { 363 S1.create3(context, new Any[0]); 364 failed("S1.create3"); 365 } catch (DeploymentException e) {} 366 try { 367 S1.create4(context, 0, 0, 0); 368 failed("S1.create4"); 369 } catch (DeploymentException e) {} 370 try { 371 S1.create5( 372 context, false, (byte) 0, (short) 0, (short) 0, 0, 0, 0L, 0L, 373 0.0f, 0.0, '\u0000', "", Type.VOID, Any.VOID, Enum2.VALUE0, 374 new Struct1(), null, null, false, (byte) 0, (short) 0, 375 (short) 0, 0, 0, 0L, 0L, 0.0f, 0.0, '\u0000', "", Type.VOID, 376 Any.VOID, Enum2.VALUE0, new Struct1(), null, null, 377 new boolean[0], new byte[0], new short[0], new short[0], 378 new int[0], new int[0], new long[0], new long[0], new float[0], 379 new double[0], new char[0], new String[0], new Type[0], 380 new Object[0], new Enum2[0], new Struct1[0], new Object[0], 381 new XNamingService[0], new boolean[0][], new byte[0][], 382 new short[0][], new short[0][], new int[0][], new int[0][], 383 new long[0][], new long[0][], new float[0][], new double[0][], 384 new char[0][], new String[0][], new Type[0][], new Object[0][], 385 new Enum2[0][], new Struct1[0][], new Object[0][], 386 new XNamingService[0][], new boolean[0][], new byte[0][], 387 new short[0][], new short[0][], new int[0][], new int[0][], 388 new long[0][], new long[0][], new float[0][], new double[0][], 389 new char[0][], new String[0][], new Type[0][], new Object[0][], 390 new Enum2[0][], new Struct1[0][], new Object[0][], 391 new XNamingService[0][]); 392 failed("S1.create4"); 393 } catch (DeploymentException e) {} 394 } 395 testS2()396 public void testS2() { 397 //TODO 398 } 399 testKeywordServices()400 public void testKeywordServices() { 401 try { 402 service_abstract.method_abstract(context, 0); 403 failed("service_abstract.method_abstract"); 404 } catch (DeploymentException e) {} 405 try { 406 service_assert.method_assert(context, 0); 407 failed("service_assert.method_assert"); 408 } catch (DeploymentException e) {} 409 try { 410 service_break.method_break(context, 0); 411 failed("service_break.method_break"); 412 } catch (DeploymentException e) {} 413 try { 414 service_catch.method_catch(context, 0); 415 failed("service_catch.method_catch"); 416 } catch (DeploymentException e) {} 417 try { 418 service_class.method_class(context, 0); 419 failed("service_class.method_class"); 420 } catch (DeploymentException e) {} 421 try { 422 service_continue.method_continue(context, 0); 423 failed("service_continue.method_continue"); 424 } catch (DeploymentException e) {} 425 try { 426 service_do.method_do(context, 0); 427 failed("service_do.method_do"); 428 } catch (DeploymentException e) {} 429 try { 430 service_else.method_else(context, 0); 431 failed("service_else.method_else"); 432 } catch (DeploymentException e) {} 433 try { 434 service_extends.method_extends(context, 0); 435 failed("service_extends.method_extends"); 436 } catch (DeploymentException e) {} 437 try { 438 service_final.method_final(context, 0); 439 failed("service_final.method_final"); 440 } catch (DeploymentException e) {} 441 try { 442 service_finally.method_finally(context, 0); 443 failed("service_finally.method_finally"); 444 } catch (DeploymentException e) {} 445 try { 446 service_for.method_for(context, 0); 447 failed("service_for.method_for"); 448 } catch (DeploymentException e) {} 449 try { 450 service_goto.method_goto(context, 0); 451 failed("service_goto.method_goto"); 452 } catch (DeploymentException e) {} 453 try { 454 service_if.method_if(context, 0); 455 failed("service_if.method_if"); 456 } catch (DeploymentException e) {} 457 try { 458 service_implements.method_implements(context, 0); 459 failed("service_implements.method_implements"); 460 } catch (DeploymentException e) {} 461 try { 462 service_import.method_import(context, 0); 463 failed("service_import.method_import"); 464 } catch (DeploymentException e) {} 465 try { 466 service_instanceof.method_instanceof(context, 0); 467 failed("service_instanceof.method_instanceof"); 468 } catch (DeploymentException e) {} 469 try { 470 service_int.method_int(context, 0); 471 failed("service_int.method_int"); 472 } catch (DeploymentException e) {} 473 try { 474 service_native.method_native(context, 0); 475 failed("service_native.method_native"); 476 } catch (DeploymentException e) {} 477 try { 478 service_new.method_new(context, 0); 479 failed("service_new.method_new"); 480 } catch (DeploymentException e) {} 481 try { 482 service_package.method_package(context, 0); 483 failed("service_package.method_package"); 484 } catch (DeploymentException e) {} 485 try { 486 service_private.method_private(context, 0); 487 failed("service_private.method_private"); 488 } catch (DeploymentException e) {} 489 try { 490 service_protected.method_protected(context, 0); 491 failed("service_protected.method_protected"); 492 } catch (DeploymentException e) {} 493 try { 494 service_public.method_public(context, 0); 495 failed("service_public.method_public"); 496 } catch (DeploymentException e) {} 497 try { 498 service_return.method_return(context, 0); 499 failed("service_return.method_return"); 500 } catch (DeploymentException e) {} 501 try { 502 service_static.method_static(context, 0); 503 failed("service_static.method_static"); 504 } catch (DeploymentException e) {} 505 try { 506 service_strictfp.method_strictfp(context, 0); 507 failed("service_strictfp.method_strictfp"); 508 } catch (DeploymentException e) {} 509 try { 510 service_super.method_super(context, 0); 511 failed("service_super.method_super"); 512 } catch (DeploymentException e) {} 513 try { 514 service_synchronized.method_synchronized(context, 0); 515 failed("service_synchronized.method_synchronized"); 516 } catch (DeploymentException e) {} 517 try { 518 service_this.method_this(context, 0); 519 failed("service_this.method_this"); 520 } catch (DeploymentException e) {} 521 try { 522 service_throw.method_throw(context, 0); 523 failed("service_throw.method_throw"); 524 } catch (DeploymentException e) {} 525 try { 526 service_throws.method_throws(context, 0); 527 failed("service_throws.method_throws"); 528 } catch (DeploymentException e) {} 529 try { 530 service_try.method_try(context, 0); 531 failed("service_try.method_try"); 532 } catch (DeploymentException e) {} 533 try { 534 service_volatile.method_volatile(context, 0); 535 failed("service_volatile.method_volatile"); 536 } catch (DeploymentException e) {} 537 try { 538 service_while.method_while(context, 0); 539 failed("service_while.method_while"); 540 } catch (DeploymentException e) {} 541 } 542 testSingletons()543 public void testSingletons() { 544 try { 545 S4.get(context); 546 failed("S4"); 547 } catch (DeploymentException e) {} 548 try { 549 singleton_abstract.get(context); 550 failed("singleton_abstract"); 551 } catch (DeploymentException e) {} 552 } 553 554 private XComponentContext context; 555 } 556