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