001/* 002 * Copyright (C) Christian Schulte <cs@schulte.it>, 2005-206 003 * All rights reserved. 004 * 005 * Redistribution and use in source and binary forms, with or without 006 * modification, are permitted provided that the following conditions 007 * are met: 008 * 009 * o Redistributions of source code must retain the above copyright 010 * notice, this list of conditions and the following disclaimer. 011 * 012 * o Redistributions in binary form must reproduce the above copyright 013 * notice, this list of conditions and the following disclaimer in 014 * the documentation and/or other materials provided with the 015 * distribution. 016 * 017 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 018 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 019 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 020 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, 021 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 022 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 023 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 024 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 025 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 026 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 027 * 028 * $JOMC: JomcToolTest.java 5043 2015-05-27 07:03:39Z schulte $ 029 * 030 */ 031package org.jomc.tools.test; 032 033import java.io.File; 034import java.io.FileNotFoundException; 035import java.io.FileOutputStream; 036import java.io.IOException; 037import java.io.OutputStream; 038import java.net.URL; 039import java.text.ParseException; 040import java.util.Calendar; 041import java.util.Locale; 042import java.util.Properties; 043import java.util.logging.Level; 044import org.apache.commons.io.FileUtils; 045import org.jomc.model.Argument; 046import org.jomc.model.Dependency; 047import org.jomc.model.Implementation; 048import org.jomc.model.JavaIdentifier; 049import org.jomc.model.Message; 050import org.jomc.model.ModelObject; 051import org.jomc.model.Module; 052import org.jomc.model.Modules; 053import org.jomc.model.Property; 054import org.jomc.model.Specification; 055import org.jomc.model.SpecificationReference; 056import org.jomc.model.Text; 057import org.jomc.model.Texts; 058import org.jomc.model.modlet.DefaultModelProvider; 059import org.jomc.model.modlet.ModelHelper; 060import org.jomc.modlet.Model; 061import org.jomc.modlet.ModelContext; 062import org.jomc.modlet.ModelContextFactory; 063import org.jomc.modlet.ModelException; 064import org.jomc.modlet.ModelValidationReport; 065import org.jomc.tools.JomcTool; 066import org.junit.Test; 067import static org.junit.Assert.assertEquals; 068import static org.junit.Assert.assertNotNull; 069import static org.junit.Assert.assertNull; 070import static org.junit.Assert.assertTrue; 071import static org.junit.Assert.fail; 072 073/** 074 * Test cases for class {@code org.jomc.tools.JomcTool}. 075 * 076 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a> 077 * @version $JOMC: JomcToolTest.java 5043 2015-05-27 07:03:39Z schulte $ 078 */ 079public class JomcToolTest 080{ 081 082 /** 083 * Constant for the name of the system property holding the name of the encoding of resources backing the test. 084 */ 085 private static final String RESOURCE_ENCODING_PROPERTY_NAME = "jomc.test.resourceEncoding"; 086 087 /** 088 * Constant for the name of the system property holding the output directory for the test. 089 */ 090 private static final String OUTPUT_DIRECTORY_PROPERTY_NAME = "jomc.test.outputDirectory"; 091 092 /** 093 * The {@code JomcTool} instance tests are performed with. 094 */ 095 private JomcTool jomcTool; 096 097 /** 098 * The {@code ModelContext} of the instance. 099 */ 100 private ModelContext modelContext; 101 102 /** 103 * The {@code Model} of the instance. 104 */ 105 private Model model; 106 107 /** 108 * The name of the encoding to use when reading or writing resources. 109 */ 110 private String resourceEncoding; 111 112 /** 113 * The output directory of the instance. 114 */ 115 private File outputDirectory; 116 117 /** 118 * Serial number of next output directories. 119 */ 120 private volatile int outputDirectoryId; 121 122 /** 123 * Creates a new {@code JomcToolTest} instance. 124 */ 125 public JomcToolTest() 126 { 127 super(); 128 } 129 130 /** 131 * Gets the name of the encoding used when reading resources. 132 * 133 * @return The name of the encoding used when reading resources. 134 * 135 * @see #setResourceEncoding(java.lang.String) 136 */ 137 public final String getResourceEncoding() 138 { 139 if ( this.resourceEncoding == null ) 140 { 141 this.resourceEncoding = System.getProperty( RESOURCE_ENCODING_PROPERTY_NAME ); 142 assertNotNull( "Expected '" + RESOURCE_ENCODING_PROPERTY_NAME + "' system property not found.", 143 this.resourceEncoding ); 144 145 } 146 147 return this.resourceEncoding; 148 } 149 150 /** 151 * Sets the name of the encoding to use when reading resources. 152 * 153 * @param value The new name of the encoding to use when reading resources or {@code null}. 154 * 155 * @see #getResourceEncoding() 156 */ 157 public final void setResourceEncoding( final String value ) 158 { 159 this.resourceEncoding = value; 160 } 161 162 /** 163 * Gets the output directory of instance. 164 * 165 * @return The output directory of instance. 166 * 167 * @see #setOutputDirectory(java.io.File) 168 */ 169 public final File getOutputDirectory() 170 { 171 if ( this.outputDirectory == null ) 172 { 173 final String name = System.getProperty( OUTPUT_DIRECTORY_PROPERTY_NAME ); 174 assertNotNull( "Expected '" + OUTPUT_DIRECTORY_PROPERTY_NAME + "' system property not found.", name ); 175 this.outputDirectory = new File( new File( name ), this.getClass().getSimpleName() ); 176 assertTrue( "Expected '" + OUTPUT_DIRECTORY_PROPERTY_NAME + "' system property to hold an absolute path.", 177 this.outputDirectory.isAbsolute() ); 178 179 if ( !this.outputDirectory.exists() ) 180 { 181 assertTrue( this.outputDirectory.mkdirs() ); 182 } 183 } 184 185 return this.outputDirectory; 186 } 187 188 /** 189 * Sets the output directory of instance. 190 * 191 * @param value The new output directory of instance or {@code null}. 192 * 193 * @see #getOutputDirectory() 194 */ 195 public final void setOutputDirectory( final File value ) 196 { 197 if ( value != null ) 198 { 199 assertTrue( "Expected absolute 'outputDirectory'.", value.isAbsolute() ); 200 } 201 202 this.outputDirectory = value; 203 } 204 205 /** 206 * Gets the next output directory of the instance. 207 * 208 * @return The next output directory of the instance. 209 */ 210 public final File getNextOutputDirectory() 211 { 212 try 213 { 214 final File nextOutputDirectory = 215 new File( this.getOutputDirectory(), Integer.toString( this.outputDirectoryId++ ) ); 216 217 assertTrue( nextOutputDirectory.isAbsolute() ); 218 if ( nextOutputDirectory.exists() ) 219 { 220 FileUtils.deleteDirectory( nextOutputDirectory ); 221 } 222 223 return nextOutputDirectory; 224 } 225 catch ( final IOException e ) 226 { 227 throw new AssertionError( e ); 228 } 229 } 230 231 /** 232 * Gets the {@code JomcTool} instance tests are performed with. 233 * 234 * @return The {@code JomcTool} instance tests are performed with. 235 * 236 * @see #newJomcTool() 237 */ 238 public JomcTool getJomcTool() 239 { 240 if ( this.jomcTool == null ) 241 { 242 this.jomcTool = this.newJomcTool(); 243 this.jomcTool.setModel( this.getModel() ); 244 this.jomcTool.getListeners().add( new JomcTool.Listener() 245 { 246 247 @Override 248 public void onLog( final Level level, final String message, final Throwable throwable ) 249 { 250 super.onLog( level, message, throwable ); 251 System.out.println( "[" + level.getLocalizedName() + "] " + message ); 252 253 if ( throwable != null ) 254 { 255 throwable.printStackTrace( System.out ); 256 } 257 } 258 259 } ); 260 261 } 262 263 return this.jomcTool; 264 } 265 266 /** 267 * Creates a new {@code JomcTool} instance to test. 268 * 269 * @return A new {@code JomcTool} instance to test. 270 * 271 * @see #getJomcTool() 272 */ 273 protected JomcTool newJomcTool() 274 { 275 return new JomcTool(); 276 } 277 278 /** 279 * Gets the {@code ModelContext} instance backing the test. 280 * 281 * @return The {@code ModelContext} instance backing the test. 282 * 283 * @see #newModelContext() 284 */ 285 public ModelContext getModelContext() 286 { 287 if ( this.modelContext == null ) 288 { 289 this.modelContext = this.newModelContext(); 290 this.modelContext.getListeners().add( new ModelContext.Listener() 291 { 292 293 @Override 294 public void onLog( final Level level, String message, Throwable t ) 295 { 296 super.onLog( level, message, t ); 297 System.out.println( "[" + level.getLocalizedName() + "] " + message ); 298 299 if ( t != null ) 300 { 301 t.printStackTrace( System.out ); 302 } 303 } 304 305 } ); 306 307 } 308 309 return this.modelContext; 310 } 311 312 /** 313 * Creates a new {@code ModelContext} instance backing the test. 314 * 315 * @return A new {@code ModelContext} instance backing the test. 316 * 317 * @see #getModelContext() 318 */ 319 protected ModelContext newModelContext() 320 { 321 return ModelContextFactory.newInstance().newModelContext(); 322 } 323 324 /** 325 * Gets the {@code Model} instance backing the test. 326 * 327 * @return The {@code Model} instance backing the test. 328 * 329 * @see #newModel() 330 */ 331 public Model getModel() 332 { 333 if ( this.model == null ) 334 { 335 this.model = this.newModel(); 336 } 337 338 return this.model; 339 } 340 341 /** 342 * Creates a new {@code Model} instance backing the test. 343 * 344 * @return A new {@code Model} instance backing the test. 345 * 346 * @see #getModel() 347 */ 348 protected Model newModel() 349 { 350 try 351 { 352 DefaultModelProvider.setDefaultModuleLocation( this.getClass().getPackage().getName().replace( '.', '/' ) 353 + "/jomc.xml" ); 354 355 Model m = this.getModelContext().findModel( ModelObject.MODEL_PUBLIC_ID ); 356 357 if ( m != null ) 358 { 359 final Modules modules = ModelHelper.getModules( m ); 360 361 if ( modules != null ) 362 { 363 final Module cp = modules.getClasspathModule( Modules.getDefaultClasspathModuleName(), 364 this.getClass().getClassLoader() ); 365 366 if ( cp != null ) 367 { 368 modules.getModule().add( cp ); 369 } 370 } 371 372 m = this.getModelContext().processModel( m ); 373 374 if ( m != null ) 375 { 376 final ModelValidationReport validationReport = this.getModelContext().validateModel( m ); 377 378 for ( int i = 0, s0 = validationReport.getDetails().size(); i < s0; i++ ) 379 { 380 System.out.println( validationReport.getDetails().get( i ) ); 381 } 382 383 assertTrue( "Unexpected invalid '" + m.getIdentifier() + "' model.", 384 validationReport.isModelValid() ); 385 386 } 387 } 388 389 return m; 390 } 391 catch ( final ModelException e ) 392 { 393 throw new AssertionError( e ); 394 } 395 finally 396 { 397 DefaultModelProvider.setDefaultModuleLocation( null ); 398 } 399 } 400 401 @Test 402 @SuppressWarnings( "deprecation" ) 403 public final void testJomcToolNullPointerException() throws Exception 404 { 405 assertNotNull( this.getJomcTool() ); 406 407 try 408 { 409 this.getJomcTool().getDisplayLanguage( null ); 410 fail( "Expected NullPointerException not thrown." ); 411 } 412 catch ( final NullPointerException e ) 413 { 414 assertNullPointerException( e ); 415 } 416 417 try 418 { 419 this.getJomcTool().getImplementedJavaTypeNames( null, false ); 420 fail( "Expected NullPointerException not thrown." ); 421 } 422 catch ( final NullPointerException e ) 423 { 424 assertNullPointerException( e ); 425 } 426 427 try 428 { 429 this.getJomcTool().getJavaClasspathLocation( (Implementation) null ); 430 fail( "Expected NullPointerException not thrown." ); 431 } 432 catch ( final NullPointerException e ) 433 { 434 assertNullPointerException( e ); 435 } 436 437 try 438 { 439 this.getJomcTool().getJavaClasspathLocation( (Specification) null ); 440 fail( "Expected NullPointerException not thrown." ); 441 } 442 catch ( final NullPointerException e ) 443 { 444 assertNullPointerException( e ); 445 } 446 447 try 448 { 449 this.getJomcTool().getJavaGetterMethodName( (Dependency) null ); 450 fail( "Expected NullPointerException not thrown." ); 451 } 452 catch ( final NullPointerException e ) 453 { 454 assertNullPointerException( e ); 455 } 456 457 try 458 { 459 this.getJomcTool().getJavaGetterMethodName( (Message) null ); 460 fail( "Expected NullPointerException not thrown." ); 461 } 462 catch ( final NullPointerException e ) 463 { 464 assertNullPointerException( e ); 465 } 466 467 try 468 { 469 this.getJomcTool().getJavaGetterMethodName( (Property) null ); 470 fail( "Expected NullPointerException not thrown." ); 471 } 472 catch ( final NullPointerException e ) 473 { 474 assertNullPointerException( e ); 475 } 476 477 try 478 { 479 this.getJomcTool().getJavaMethodParameterName( (Argument) null ); 480 fail( "Expected NullPointerException not thrown." ); 481 } 482 catch ( final NullPointerException e ) 483 { 484 assertNullPointerException( e ); 485 } 486 487 try 488 { 489 this.getJomcTool().getJavaMethodParameterName( (Dependency) null ); 490 fail( "Expected NullPointerException not thrown." ); 491 } 492 catch ( final NullPointerException e ) 493 { 494 assertNullPointerException( e ); 495 } 496 497 try 498 { 499 this.getJomcTool().getJavaMethodParameterName( (Message) null ); 500 fail( "Expected NullPointerException not thrown." ); 501 } 502 catch ( final NullPointerException e ) 503 { 504 assertNullPointerException( e ); 505 } 506 507 try 508 { 509 this.getJomcTool().getJavaMethodParameterName( (Property) null ); 510 fail( "Expected NullPointerException not thrown." ); 511 } 512 catch ( final NullPointerException e ) 513 { 514 assertNullPointerException( e ); 515 } 516 517 try 518 { 519 this.getJomcTool().getJavaInterfaceNames( null, false ); 520 fail( "Expected NullPointerException not thrown." ); 521 } 522 catch ( final NullPointerException e ) 523 { 524 assertNullPointerException( e ); 525 } 526 527 try 528 { 529 this.getJomcTool().getJavaModifierName( null, (Dependency) null ); 530 fail( "Expected NullPointerException not thrown." ); 531 } 532 catch ( final NullPointerException e ) 533 { 534 assertNullPointerException( e ); 535 } 536 try 537 { 538 this.getJomcTool().getJavaModifierName( new Implementation(), (Dependency) null ); 539 fail( "Expected NullPointerException not thrown." ); 540 } 541 catch ( final NullPointerException e ) 542 { 543 assertNullPointerException( e ); 544 } 545 546 try 547 { 548 this.getJomcTool().getJavaModifierName( null, (Message) null ); 549 fail( "Expected NullPointerException not thrown." ); 550 } 551 catch ( final NullPointerException e ) 552 { 553 assertNullPointerException( e ); 554 } 555 try 556 { 557 this.getJomcTool().getJavaModifierName( new Implementation(), (Message) null ); 558 fail( "Expected NullPointerException not thrown." ); 559 } 560 catch ( final NullPointerException e ) 561 { 562 assertNullPointerException( e ); 563 } 564 565 try 566 { 567 this.getJomcTool().getJavaModifierName( null, (Property) null ); 568 fail( "Expected NullPointerException not thrown." ); 569 } 570 catch ( final NullPointerException e ) 571 { 572 assertNullPointerException( e ); 573 } 574 try 575 { 576 this.getJomcTool().getJavaModifierName( new Implementation(), (Property) null ); 577 fail( "Expected NullPointerException not thrown." ); 578 } 579 catch ( final NullPointerException e ) 580 { 581 assertNullPointerException( e ); 582 } 583 584 try 585 { 586 this.getJomcTool().getJavaPackageName( (Implementation) null ); 587 fail( "Expected NullPointerException not thrown." ); 588 } 589 catch ( final NullPointerException e ) 590 { 591 assertNullPointerException( e ); 592 } 593 594 try 595 { 596 this.getJomcTool().getJavaPackageName( (Specification) null ); 597 fail( "Expected NullPointerException not thrown." ); 598 } 599 catch ( final NullPointerException e ) 600 { 601 assertNullPointerException( e ); 602 } 603 604 try 605 { 606 this.getJomcTool().getJavaPackageName( (SpecificationReference) null ); 607 fail( "Expected NullPointerException not thrown." ); 608 } 609 catch ( final NullPointerException e ) 610 { 611 assertNullPointerException( e ); 612 } 613 614 try 615 { 616 this.getJomcTool().getJavaSetterMethodName( (Dependency) null ); 617 fail( "Expected NullPointerException not thrown." ); 618 } 619 catch ( final NullPointerException e ) 620 { 621 assertNullPointerException( e ); 622 } 623 624 try 625 { 626 this.getJomcTool().getJavaSetterMethodName( (Message) null ); 627 fail( "Expected NullPointerException not thrown." ); 628 } 629 catch ( final NullPointerException e ) 630 { 631 assertNullPointerException( e ); 632 } 633 634 try 635 { 636 this.getJomcTool().getJavaSetterMethodName( (Property) null ); 637 fail( "Expected NullPointerException not thrown." ); 638 } 639 catch ( final NullPointerException e ) 640 { 641 assertNullPointerException( e ); 642 } 643 644 try 645 { 646 this.getJomcTool().getJavaTypeName( (Argument) null ); 647 fail( "Expected NullPointerException not thrown." ); 648 } 649 catch ( final NullPointerException e ) 650 { 651 assertNullPointerException( e ); 652 } 653 654 try 655 { 656 this.getJomcTool().getJavaTypeName( (Dependency) null ); 657 fail( "Expected NullPointerException not thrown." ); 658 } 659 catch ( final NullPointerException e ) 660 { 661 assertNullPointerException( e ); 662 } 663 664 try 665 { 666 this.getJomcTool().getJavaTypeName( (Implementation) null, true ); 667 fail( "Expected NullPointerException not thrown." ); 668 } 669 catch ( final NullPointerException e ) 670 { 671 assertNullPointerException( e ); 672 } 673 674 try 675 { 676 this.getJomcTool().getJavaTypeName( (Property) null, true ); 677 fail( "Expected NullPointerException not thrown." ); 678 } 679 catch ( final NullPointerException e ) 680 { 681 assertNullPointerException( e ); 682 } 683 684 try 685 { 686 this.getJomcTool().getJavaTypeName( (Specification) null, true ); 687 fail( "Expected NullPointerException not thrown." ); 688 } 689 catch ( final NullPointerException e ) 690 { 691 assertNullPointerException( e ); 692 } 693 694 try 695 { 696 this.getJomcTool().getJavaTypeName( (SpecificationReference) null, true ); 697 fail( "Expected NullPointerException not thrown." ); 698 } 699 catch ( final NullPointerException e ) 700 { 701 assertNullPointerException( e ); 702 } 703 704 try 705 { 706 this.getJomcTool().getJavadocComment( (Text) null, 0, "\n" ); 707 fail( "Expected NullPointerException not thrown." ); 708 } 709 catch ( final NullPointerException e ) 710 { 711 assertNullPointerException( e ); 712 } 713 try 714 { 715 this.getJomcTool().getJavadocComment( new Text(), 0, null ); 716 fail( "Expected NullPointerException not thrown." ); 717 } 718 catch ( final NullPointerException e ) 719 { 720 assertNullPointerException( e ); 721 } 722 try 723 { 724 this.getJomcTool().getJavadocComment( new Text(), Integer.MIN_VALUE, "\n" ); 725 fail( "Expected IllegalArgumentException not thrown." ); 726 } 727 catch ( final IllegalArgumentException e ) 728 { 729 assertIllegalArgumentException( e ); 730 } 731 732 try 733 { 734 this.getJomcTool().getJavadocComment( (Texts) null, 0, "\n" ); 735 fail( "Expected NullPointerException not thrown." ); 736 } 737 catch ( final NullPointerException e ) 738 { 739 assertNullPointerException( e ); 740 } 741 try 742 { 743 this.getJomcTool().getJavadocComment( new Texts(), 0, null ); 744 fail( "Expected NullPointerException not thrown." ); 745 } 746 catch ( final NullPointerException e ) 747 { 748 assertNullPointerException( e ); 749 } 750 try 751 { 752 this.getJomcTool().getJavadocComment( new Texts(), Integer.MIN_VALUE, "\n" ); 753 fail( "Expected IllegalArgumentException not thrown." ); 754 } 755 catch ( final IllegalArgumentException e ) 756 { 757 assertIllegalArgumentException( e ); 758 } 759 760 try 761 { 762 this.getJomcTool().getLongDate( null ); 763 fail( "Expected NullPointerException not thrown." ); 764 } 765 catch ( final NullPointerException e ) 766 { 767 assertNullPointerException( e ); 768 } 769 770 try 771 { 772 this.getJomcTool().getLongDateTime( null ); 773 fail( "Expected NullPointerException not thrown." ); 774 } 775 catch ( final NullPointerException e ) 776 { 777 assertNullPointerException( e ); 778 } 779 780 try 781 { 782 this.getJomcTool().getLongTime( null ); 783 fail( "Expected NullPointerException not thrown." ); 784 } 785 catch ( final NullPointerException e ) 786 { 787 assertNullPointerException( e ); 788 } 789 790 try 791 { 792 this.getJomcTool().getMediumDate( null ); 793 fail( "Expected NullPointerException not thrown." ); 794 } 795 catch ( final NullPointerException e ) 796 { 797 assertNullPointerException( e ); 798 } 799 800 try 801 { 802 this.getJomcTool().getMediumDateTime( null ); 803 fail( "Expected NullPointerException not thrown." ); 804 } 805 catch ( final NullPointerException e ) 806 { 807 assertNullPointerException( e ); 808 } 809 810 try 811 { 812 this.getJomcTool().getMediumTime( null ); 813 fail( "Expected NullPointerException not thrown." ); 814 } 815 catch ( final NullPointerException e ) 816 { 817 assertNullPointerException( e ); 818 } 819 820 try 821 { 822 this.getJomcTool().getShortDate( null ); 823 fail( "Expected NullPointerException not thrown." ); 824 } 825 catch ( final NullPointerException e ) 826 { 827 assertNullPointerException( e ); 828 } 829 830 try 831 { 832 this.getJomcTool().getShortDateTime( null ); 833 fail( "Expected NullPointerException not thrown." ); 834 } 835 catch ( final NullPointerException e ) 836 { 837 assertNullPointerException( e ); 838 } 839 840 try 841 { 842 this.getJomcTool().getShortTime( null ); 843 fail( "Expected NullPointerException not thrown." ); 844 } 845 catch ( final NullPointerException e ) 846 { 847 assertNullPointerException( e ); 848 } 849 850 try 851 { 852 this.getJomcTool().getVelocityTemplate( null ); 853 fail( "Expected NullPointerException not thrown." ); 854 } 855 catch ( final NullPointerException e ) 856 { 857 assertNullPointerException( e ); 858 } 859 860 try 861 { 862 this.getJomcTool().getYears( null, Calendar.getInstance() ); 863 fail( "Expected NullPointerException not thrown." ); 864 } 865 catch ( final NullPointerException e ) 866 { 867 assertNullPointerException( e ); 868 } 869 870 try 871 { 872 this.getJomcTool().getYears( Calendar.getInstance(), null ); 873 fail( "Expected NullPointerException not thrown." ); 874 } 875 catch ( final NullPointerException e ) 876 { 877 assertNullPointerException( e ); 878 } 879 880 try 881 { 882 this.getJomcTool().isJavaDefaultPackage( (Implementation) null ); 883 fail( "Expected NullPointerException not thrown." ); 884 } 885 catch ( final NullPointerException e ) 886 { 887 assertNullPointerException( e ); 888 } 889 890 try 891 { 892 this.getJomcTool().isJavaDefaultPackage( (Specification) null ); 893 fail( "Expected NullPointerException not thrown." ); 894 } 895 catch ( final NullPointerException e ) 896 { 897 assertNullPointerException( e ); 898 } 899 900 try 901 { 902 this.getJomcTool().isJavaPrimitiveType( null ); 903 fail( "Expected NullPointerException not thrown." ); 904 } 905 catch ( final NullPointerException e ) 906 { 907 assertNullPointerException( e ); 908 } 909 910 try 911 { 912 this.getJomcTool().isLoggable( null ); 913 fail( "Expected NullPointerException not thrown." ); 914 } 915 catch ( final NullPointerException e ) 916 { 917 assertNullPointerException( e ); 918 } 919 920 try 921 { 922 this.getJomcTool().getIsoDate( null ); 923 fail( "Expected NullPointerException not thrown." ); 924 } 925 catch ( final NullPointerException e ) 926 { 927 assertNullPointerException( e ); 928 } 929 930 try 931 { 932 this.getJomcTool().getIsoTime( null ); 933 fail( "Expected NullPointerException not thrown." ); 934 } 935 catch ( final NullPointerException e ) 936 { 937 assertNullPointerException( e ); 938 } 939 940 try 941 { 942 this.getJomcTool().getIsoDateTime( null ); 943 fail( "Expected NullPointerException not thrown." ); 944 } 945 catch ( final NullPointerException e ) 946 { 947 assertNullPointerException( e ); 948 } 949 950 try 951 { 952 this.getJomcTool().getTemplateEncoding( null ); 953 fail( "Expected NullPointerException not thrown." ); 954 } 955 catch ( final NullPointerException e ) 956 { 957 assertNullPointerException( e ); 958 } 959 960 try 961 { 962 this.getJomcTool().getParentTemplateProfile( null ); 963 fail( "Expected NullPointerException not thrown." ); 964 } 965 catch ( final NullPointerException e ) 966 { 967 assertNullPointerException( e ); 968 } 969 } 970 971 @Test 972 @SuppressWarnings( "deprecation" ) 973 public final void testJomcToolNotNull() throws Exception 974 { 975 final Specification specification = new Specification(); 976 specification.setClazz( "java.lang.Object" ); 977 specification.setIdentifier( "java.lang.Object" ); 978 979 final Specification defaultPackageSpecification = new Specification(); 980 defaultPackageSpecification.setClazz( "Object" ); 981 defaultPackageSpecification.setIdentifier( "Object" ); 982 983 final Implementation implementation = new Implementation(); 984 implementation.setIdentifier( "java.lang.Object" ); 985 implementation.setName( "java.lang.Object" ); 986 implementation.setClazz( "java.lang.Object" ); 987 988 final Implementation defaultPackageImplementation = new Implementation(); 989 defaultPackageImplementation.setIdentifier( "Object" ); 990 defaultPackageImplementation.setName( "Object" ); 991 defaultPackageImplementation.setClazz( "Object" ); 992 993 final Dependency d = new Dependency(); 994 d.setIdentifier( "java.util.Locale" ); 995 d.setName( "locale" ); 996 d.setImplementationName( "default" ); 997 998 final Property p = new Property(); 999 p.setName( "property" ); 1000 p.setValue( "Test" ); 1001 1002 final Message m = new Message(); 1003 m.setName( "message" ); 1004 1005 final Calendar now = Calendar.getInstance(); 1006 final Calendar nextYear = Calendar.getInstance(); 1007 nextYear.set( Calendar.YEAR, nextYear.get( Calendar.YEAR ) + 1 ); 1008 1009 assertNotNull( this.getJomcTool().getListeners() ); 1010 assertNotNull( this.getJomcTool().getInputEncoding() ); 1011 assertNotNull( this.getJomcTool().getModel() ); 1012 assertNotNull( this.getJomcTool().getModules() ); 1013 assertNotNull( this.getJomcTool().getOutputEncoding() ); 1014 assertNotNull( this.getJomcTool().getTemplateProfile() ); 1015 assertNotNull( this.getJomcTool().getTemplateEncoding() ); 1016 assertNotNull( this.getJomcTool().getDefaultTemplateEncoding() ); 1017 assertNotNull( this.getJomcTool().getTemplateParameters() ); 1018 assertNotNull( this.getJomcTool().getIndentation() ); 1019 assertNotNull( this.getJomcTool().getLineSeparator() ); 1020 assertNotNull( this.getJomcTool().getVelocityContext() ); 1021 assertNotNull( this.getJomcTool().getVelocityEngine() ); 1022 assertNotNull( JomcTool.getDefaultLogLevel() ); 1023 assertNotNull( this.getJomcTool().getLongDate( now ) ); 1024 assertNotNull( this.getJomcTool().getLongDateTime( now ) ); 1025 assertNotNull( this.getJomcTool().getLongTime( now ) ); 1026 assertNotNull( this.getJomcTool().getMediumDate( now ) ); 1027 assertNotNull( this.getJomcTool().getMediumDateTime( now ) ); 1028 assertNotNull( this.getJomcTool().getMediumTime( now ) ); 1029 assertNotNull( this.getJomcTool().getShortDate( now ) ); 1030 assertNotNull( this.getJomcTool().getShortDateTime( now ) ); 1031 assertNotNull( this.getJomcTool().getShortTime( now ) ); 1032 assertNotNull( this.getJomcTool().getIsoDate( now ) ); 1033 assertNotNull( this.getJomcTool().getIsoDateTime( now ) ); 1034 assertNotNull( this.getJomcTool().getIsoTime( now ) ); 1035 assertNotNull( this.getJomcTool().getYears( now, now ) ); 1036 assertNotNull( this.getJomcTool().getYears( now, nextYear ) ); 1037 assertNotNull( this.getJomcTool().getYears( nextYear, now ) ); 1038 assertNotNull( this.getJomcTool().getDisplayLanguage( "en" ) ); 1039 1040 assertEquals( this.getJomcTool().getYears( now, nextYear ), this.getJomcTool().getYears( nextYear, now ) ); 1041 assertEquals( Locale.getDefault().getDisplayLanguage(), 1042 this.getJomcTool().getDisplayLanguage( Locale.getDefault().getLanguage() ) ); 1043 1044 assertEquals( "java/lang/Object", this.getJomcTool().getJavaClasspathLocation( implementation ) ); 1045 assertEquals( "Object", this.getJomcTool().getJavaClasspathLocation( defaultPackageImplementation ) ); 1046 assertEquals( "java/lang/Object", this.getJomcTool().getJavaClasspathLocation( specification ) ); 1047 assertEquals( "Object", this.getJomcTool().getJavaClasspathLocation( defaultPackageSpecification ) ); 1048 assertEquals( "getLocale", this.getJomcTool().getJavaGetterMethodName( d ) ); 1049 assertEquals( "getMessage", this.getJomcTool().getJavaGetterMethodName( m ) ); 1050 assertEquals( "getProperty", this.getJomcTool().getJavaGetterMethodName( p ) ); 1051 assertEquals( 0, this.getJomcTool().getJavaInterfaceNames( implementation, true ).size() ); 1052 assertEquals( 0, this.getJomcTool().getImplementedJavaTypeNames( implementation, true ).size() ); 1053 assertEquals( "private", this.getJomcTool().getJavaModifierName( implementation, d ) ); 1054 assertEquals( "private", this.getJomcTool().getJavaModifierName( implementation, m ) ); 1055 assertEquals( "private", this.getJomcTool().getJavaModifierName( implementation, p ) ); 1056 assertEquals( "java.lang", this.getJomcTool().getJavaPackageName( implementation ) ); 1057 assertEquals( "", this.getJomcTool().getJavaPackageName( defaultPackageImplementation ) ); 1058 assertEquals( "java.lang", this.getJomcTool().getJavaPackageName( specification ) ); 1059 assertEquals( "", this.getJomcTool().getJavaPackageName( defaultPackageSpecification ) ); 1060 assertEquals( "java.util", this.getJomcTool().getJavaPackageName( d ) ); 1061 assertEquals( "", this.getJomcTool().getJavaString( "" ) ); 1062 assertEquals( this.getJomcTool().getIndentation(), this.getJomcTool().getIndentation( 1 ) ); 1063 assertEquals( this.getJomcTool().getDefaultTemplateEncoding(), 1064 this.getJomcTool().getTemplateEncoding( "DOES_NOT_EXIST" ) ); 1065 1066 assertEquals( this.getJomcTool().getDefaultTemplateProfile(), 1067 this.getJomcTool().getParentTemplateProfile( "DOES_NOT_EXIST" ) ); 1068 1069 } 1070 1071 @Test 1072 public final void testVelocityTemplates() throws Exception 1073 { 1074 assertNotNull( this.getJomcTool().getVelocityTemplate( "Implementation.java.vm" ) ); 1075 this.getJomcTool().setTemplateProfile( "DOES_NOT_EXIST" ); 1076 assertNotNull( this.getJomcTool().getVelocityTemplate( "Implementation.java.vm" ) ); 1077 this.getJomcTool().setTemplateProfile( null ); 1078 1079 try 1080 { 1081 this.getJomcTool().getVelocityTemplate( "DOES_NOT_EXIST" ); 1082 fail( "Expected FileNotFoundException not thrown." ); 1083 } 1084 catch ( final FileNotFoundException e ) 1085 { 1086 assertNotNull( e.getMessage() ); 1087 System.out.println( e.toString() ); 1088 } 1089 1090 try 1091 { 1092 this.getJomcTool().setTemplateProfile( "DOES_NOT_EXIST" ); 1093 this.getJomcTool().getVelocityTemplate( "DOES_NOT_EXIST" ); 1094 fail( "Expected FileNotFoundException not thrown." ); 1095 } 1096 catch ( final FileNotFoundException e ) 1097 { 1098 assertNotNull( e.getMessage() ); 1099 System.out.println( e.toString() ); 1100 } 1101 } 1102 1103 @Test 1104 public final void testDefaultLogLevel() throws Exception 1105 { 1106 final String testLogLevel = System.getProperty( "org.jomc.tools.JomcTool.defaultLogLevel" ); 1107 1108 assertNotNull( JomcTool.getDefaultLogLevel() ); 1109 JomcTool.setDefaultLogLevel( null ); 1110 System.setProperty( "org.jomc.tools.JomcTool.defaultLogLevel", "OFF" ); 1111 assertEquals( Level.OFF, JomcTool.getDefaultLogLevel() ); 1112 1113 if ( testLogLevel != null ) 1114 { 1115 System.setProperty( "org.jomc.tools.JomcTool.defaultLogLevel", testLogLevel ); 1116 } 1117 else 1118 { 1119 System.clearProperty( "org.jomc.tools.JomcTool.defaultLogLevel" ); 1120 } 1121 1122 JomcTool.setDefaultLogLevel( null ); 1123 } 1124 1125 @Test 1126 public final void testLogLevel() throws Exception 1127 { 1128 JomcTool.setDefaultLogLevel( null ); 1129 this.getJomcTool().setLogLevel( null ); 1130 assertNotNull( this.getJomcTool().getLogLevel() ); 1131 1132 JomcTool.setDefaultLogLevel( Level.OFF ); 1133 this.getJomcTool().setLogLevel( null ); 1134 assertEquals( Level.OFF, this.getJomcTool().getLogLevel() ); 1135 1136 JomcTool.setDefaultLogLevel( null ); 1137 this.getJomcTool().setLogLevel( null ); 1138 } 1139 1140 @Test 1141 @SuppressWarnings( "deprecation" ) 1142 public final void testDefaultTemplateProfile() throws Exception 1143 { 1144 assertNotNull( JomcTool.getDefaultTemplateProfile() ); 1145 System.setProperty( "org.jomc.tools.JomcTool.defaultTemplateProfile", "TEST" ); 1146 JomcTool.setDefaultTemplateProfile( null ); 1147 assertEquals( "TEST", JomcTool.getDefaultTemplateProfile() ); 1148 System.clearProperty( "org.jomc.tools.JomcTool.defaultTemplateProfile" ); 1149 JomcTool.setDefaultTemplateProfile( null ); 1150 } 1151 1152 @Test 1153 @SuppressWarnings( "deprecation" ) 1154 public final void testTemplateProfile() throws Exception 1155 { 1156 JomcTool.setDefaultTemplateProfile( null ); 1157 this.getJomcTool().setTemplateProfile( null ); 1158 assertNotNull( this.getJomcTool().getTemplateProfile() ); 1159 1160 JomcTool.setDefaultTemplateProfile( "TEST" ); 1161 this.getJomcTool().setTemplateProfile( null ); 1162 assertEquals( "TEST", this.getJomcTool().getTemplateProfile() ); 1163 1164 JomcTool.setDefaultTemplateProfile( null ); 1165 this.getJomcTool().setTemplateProfile( null ); 1166 } 1167 1168 @Test 1169 public final void testIndentation() throws Exception 1170 { 1171 assertEquals( "", this.getJomcTool().getIndentation( 0 ) ); 1172 assertEquals( this.getJomcTool().getIndentation(), this.getJomcTool().getIndentation( 1 ) ); 1173 1174 try 1175 { 1176 this.getJomcTool().getIndentation( Integer.MIN_VALUE ); 1177 fail( "Expected IllegalArgumentException not thrown." ); 1178 } 1179 catch ( final IllegalArgumentException e ) 1180 { 1181 assertIllegalArgumentException( e ); 1182 } 1183 1184 this.getJomcTool().setIndentation( " TEST " ); 1185 assertEquals( " TEST ", this.getJomcTool().getIndentation() ); 1186 assertEquals( " TEST ", this.getJomcTool().getIndentation( 1 ) ); 1187 this.getJomcTool().setIndentation( null ); 1188 } 1189 1190 @Test 1191 public final void testModel() throws Exception 1192 { 1193 final Model m = this.getJomcTool().getModel(); 1194 this.getJomcTool().setModel( null ); 1195 assertNotNull( this.getJomcTool().getModel() ); 1196 this.getJomcTool().setModel( m ); 1197 } 1198 1199 @Test 1200 public final void testVelocityEngine() throws Exception 1201 { 1202 this.getJomcTool().setVelocityEngine( null ); 1203 assertNotNull( this.getJomcTool().getVelocityEngine() ); 1204 this.getJomcTool().setVelocityEngine( null ); 1205 } 1206 1207 @Test 1208 public final void testVelocityContext() throws Exception 1209 { 1210 assertNotNull( this.getJomcTool().getVelocityContext() ); 1211 this.getJomcTool().setTemplateProfile( "test" ); 1212 assertNotNull( this.getJomcTool().getVelocityContext() ); 1213 assertNotNull( this.getJomcTool().getVelocityContext().get( "test-object" ) ); 1214 assertTrue( this.getJomcTool().getVelocityContext().get( "test-object" ) instanceof JomcTool ); 1215 assertNotNull( this.getJomcTool().getVelocityContext().get( "test-url" ) ); 1216 assertTrue( this.getJomcTool().getVelocityContext().get( "test-url" ) instanceof URL ); 1217 assertEquals( new URL( "file:///tmp" ), this.getJomcTool().getVelocityContext().get( "test-url" ) ); 1218 assertNotNull( this.getJomcTool().getVelocityContext().get( "test-string" ) ); 1219 assertTrue( this.getJomcTool().getVelocityContext().get( "test-string" ) instanceof String ); 1220 assertEquals( "Test", this.getJomcTool().getVelocityContext().get( "test-string" ) ); 1221 this.getJomcTool().setTemplateProfile( null ); 1222 } 1223 1224 @Test 1225 public final void testDefaultTemplateEncoding() throws Exception 1226 { 1227 this.getJomcTool().setDefaultTemplateEncoding( null ); 1228 assertNotNull( this.getJomcTool().getDefaultTemplateEncoding() ); 1229 this.getJomcTool().setDefaultTemplateEncoding( null ); 1230 } 1231 1232 @Test 1233 public final void testTemplateEncoding() throws Exception 1234 { 1235 final File templateLocation = this.getNextOutputDirectory(); 1236 File templatesDir = new File( templateLocation, "org" ); 1237 templatesDir = new File( templatesDir, "jomc" ); 1238 templatesDir = new File( templatesDir, "tools" ); 1239 templatesDir = new File( templatesDir, "templates" ); 1240 templatesDir = new File( templatesDir, "tmp" ); 1241 1242 assertTrue( templatesDir.mkdirs() ); 1243 1244 final Properties p = new Properties(); 1245 p.setProperty( "template-encoding", "ISO-8859-1" ); 1246 1247 final OutputStream profileProperties = new FileOutputStream( new File( templatesDir, "profile.properties" ) ); 1248 p.store( profileProperties, this.getClass().getName() ); 1249 profileProperties.close(); 1250 1251 this.getJomcTool().setDefaultTemplateEncoding( null ); 1252 this.getJomcTool().setTemplateLocation( templateLocation.toURI().toURL() ); 1253 1254 assertEquals( "ISO-8859-1", this.getJomcTool().getTemplateEncoding( "tmp" ) ); 1255 assertEquals( "US-ASCII", this.getJomcTool().getTemplateEncoding( "test" ) ); 1256 assertEquals( this.getJomcTool().getDefaultTemplateEncoding(), 1257 this.getJomcTool().getTemplateEncoding( "jomc-java-bundles" ) ); 1258 1259 this.getJomcTool().setTemplateLocation( null ); 1260 this.getJomcTool().setDefaultTemplateEncoding( null ); 1261 } 1262 1263 @Test 1264 public final void testInputEncoding() throws Exception 1265 { 1266 this.getJomcTool().setInputEncoding( null ); 1267 assertNotNull( this.getJomcTool().getInputEncoding() ); 1268 this.getJomcTool().setInputEncoding( null ); 1269 } 1270 1271 @Test 1272 public final void testOutputEncoding() throws Exception 1273 { 1274 this.getJomcTool().setOutputEncoding( null ); 1275 assertNotNull( this.getJomcTool().getOutputEncoding() ); 1276 this.getJomcTool().setOutputEncoding( null ); 1277 } 1278 1279 @Test 1280 public final void testLineSeparator() throws Exception 1281 { 1282 this.getJomcTool().setLineSeparator( null ); 1283 assertNotNull( this.getJomcTool().getLineSeparator() ); 1284 this.getJomcTool().setLineSeparator( null ); 1285 } 1286 1287 @Test 1288 @SuppressWarnings( "deprecation" ) 1289 public final void testJomcToolModelObjectsNotFound() throws Exception 1290 { 1291 final SpecificationReference ref = new SpecificationReference(); 1292 ref.setIdentifier( "DOES_NOT_EXIST" ); 1293 1294 final Implementation i = new Implementation(); 1295 i.setIdentifier( "DOES_NOT_EXSIST" ); 1296 1297 final Dependency d = new Dependency(); 1298 d.setIdentifier( "DOES_NOT_EXIST" ); 1299 1300 final Property p = new Property(); 1301 p.setName( "DOES_NOT_EXIST" ); 1302 1303 assertNull( this.getJomcTool().getJavaPackageName( ref ) ); 1304 assertNull( this.getJomcTool().getJavaTypeName( ref, false ) ); 1305 assertNull( this.getJomcTool().getJavaTypeName( d ) ); 1306 1307 final Model oldModel = this.getJomcTool().getModel(); 1308 this.getJomcTool().setModel( null ); 1309 assertTrue( this.getJomcTool().getImplementedJavaTypeNames( i, true ).isEmpty() ); 1310 assertEquals( "private", this.getJomcTool().getJavaModifierName( i, p ) ); 1311 this.getJomcTool().setModel( oldModel ); 1312 } 1313 1314 @Test 1315 @SuppressWarnings( "deprecation" ) 1316 public final void testJavaIdentifier() throws Exception 1317 { 1318 assertEquals( "", this.getJomcTool().getJavaIdentifier( "", true ) ); 1319 assertEquals( "", this.getJomcTool().getJavaIdentifier( "", false ) ); 1320 assertEquals( "", this.getJomcTool().getJavaIdentifier( " ", true ) ); 1321 assertEquals( "", this.getJomcTool().getJavaIdentifier( " ", false ) ); 1322 assertEquals( "testTestTest", this.getJomcTool().getJavaIdentifier( " test test test ", false ) ); 1323 assertEquals( "testTestTest", this.getJomcTool().getJavaIdentifier( " test test test ", false ) ); 1324 assertEquals( "TestTestTest", this.getJomcTool().getJavaIdentifier( " test test test ", true ) ); 1325 assertEquals( "TestTestTest", this.getJomcTool().getJavaIdentifier( " test test test ", true ) ); 1326 assertEquals( "testTestTest", this.getJomcTool().getJavaIdentifier( " Test test test ", false ) ); 1327 assertEquals( "testTestTest", this.getJomcTool().getJavaIdentifier( " Test test test ", false ) ); 1328 assertEquals( "TestTestTest", this.getJomcTool().getJavaIdentifier( " test test test ", true ) ); 1329 assertEquals( "TestTestTest", this.getJomcTool().getJavaIdentifier( " test test test ", true ) ); 1330 } 1331 1332 @Test 1333 @SuppressWarnings( "deprecation" ) 1334 public final void testJavaConstantName() throws Exception 1335 { 1336 assertEquals( "", this.getJomcTool().getJavaConstantName( "" ) ); 1337 assertEquals( "", this.getJomcTool().getJavaConstantName( " " ) ); 1338 assertEquals( "TEST_TEST_TEST", this.getJomcTool().getJavaConstantName( " test test test " ) ); 1339 assertEquals( "TEST_TEST_TEST", this.getJomcTool().getJavaConstantName( " test test test " ) ); 1340 assertEquals( "TEST_T_EST_TE_ST_TES_T", 1341 this.getJomcTool().getJavaConstantName( " Test tEst teSt tesT " ) ); 1342 1343 } 1344 1345 @Test 1346 @SuppressWarnings( "deprecation" ) 1347 public final void testJavaFieldName() throws Exception 1348 { 1349 assertEquals( "", this.getJomcTool().getJavaFieldName( "" ) ); 1350 assertEquals( "", this.getJomcTool().getJavaFieldName( " " ) ); 1351 assertEquals( "testTestTest", this.getJomcTool().getJavaFieldName( " test test test " ) ); 1352 assertEquals( "testTestTest", this.getJomcTool().getJavaFieldName( " test test test " ) ); 1353 assertEquals( "testTEstTeStTesT", this.getJomcTool().getJavaFieldName( " Test tEst teSt tesT " ) ); 1354 assertEquals( "testTEstTeStTesT", this.getJomcTool().getJavaFieldName( " Test tEst teSt tesT " ) ); 1355 assertEquals( "_package", this.getJomcTool().getJavaFieldName( " Package " ) ); 1356 assertEquals( "_new", this.getJomcTool().getJavaFieldName( " New " ) ); 1357 } 1358 1359 @Test 1360 @SuppressWarnings( "deprecation" ) 1361 public final void testJavaMethodParameterName() throws Exception 1362 { 1363 assertEquals( "", this.getJomcTool().getJavaMethodParameterName( "" ) ); 1364 assertEquals( "", this.getJomcTool().getJavaMethodParameterName( " " ) ); 1365 assertEquals( "testTestTest", this.getJomcTool().getJavaMethodParameterName( " test test test " ) ); 1366 assertEquals( "testTEstTeStTesT", this.getJomcTool().getJavaMethodParameterName( " Test tEst teSt tesT " ) ); 1367 assertEquals( "testTEstTeStTesT", 1368 this.getJomcTool().getJavaMethodParameterName( " Test tEst teSt tesT " ) ); 1369 1370 assertEquals( "_package", this.getJomcTool().getJavaMethodParameterName( " Package " ) ); 1371 assertEquals( "_new", this.getJomcTool().getJavaMethodParameterName( " New " ) ); 1372 } 1373 1374 @Test 1375 public final void testToJavaConstantName() throws Exception 1376 { 1377 try 1378 { 1379 this.getJomcTool().toJavaConstantName( "" ); 1380 fail( "Expected 'ParseException' not thrown." ); 1381 } 1382 catch ( final ParseException e ) 1383 { 1384 System.out.println( e.toString() ); 1385 assertNotNull( e.getMessage() ); 1386 } 1387 try 1388 { 1389 this.getJomcTool().toJavaConstantName( " " ); 1390 fail( "Expected 'ParseException' not thrown." ); 1391 } 1392 catch ( final ParseException e ) 1393 { 1394 System.out.println( e.toString() ); 1395 assertNotNull( e.getMessage() ); 1396 } 1397 1398 assertEquals( JavaIdentifier.valueOf( "TEST_TEST_TEST" ), 1399 this.getJomcTool().toJavaConstantName( " test test test " ) ); 1400 1401 assertEquals( JavaIdentifier.valueOf( "TEST_TEST_TEST_TEST" ), 1402 this.getJomcTool().toJavaConstantName( " Test tEst teSt tesT " ) ); 1403 1404 assertEquals( JavaIdentifier.valueOf( "TEST_TEST_TEST_TEST" ), 1405 this.getJomcTool().toJavaConstantName( " Test tEst teSt tesT " ) ); 1406 1407 assertEquals( JavaIdentifier.valueOf( "PACKAGE" ), this.getJomcTool().toJavaConstantName( " Package " ) ); 1408 assertEquals( JavaIdentifier.valueOf( "NEW" ), this.getJomcTool().toJavaConstantName( " New " ) ); 1409 } 1410 1411 @Test 1412 public final void testToJavaMethodName() throws Exception 1413 { 1414 try 1415 { 1416 this.getJomcTool().toJavaMethodName( "" ); 1417 fail( "Expected 'ParseException' not thrown." ); 1418 } 1419 catch ( final ParseException e ) 1420 { 1421 System.out.println( e.toString() ); 1422 assertNotNull( e.getMessage() ); 1423 } 1424 try 1425 { 1426 this.getJomcTool().toJavaMethodName( " " ); 1427 fail( "Expected 'ParseException' not thrown." ); 1428 } 1429 catch ( final ParseException e ) 1430 { 1431 System.out.println( e.toString() ); 1432 assertNotNull( e.getMessage() ); 1433 } 1434 1435 assertEquals( JavaIdentifier.valueOf( "testTestTest" ), 1436 this.getJomcTool().toJavaMethodName( " test test test " ) ); 1437 1438 assertEquals( JavaIdentifier.valueOf( "testTestTestTest" ), 1439 this.getJomcTool().toJavaMethodName( " Test tEst teSt tesT " ) ); 1440 1441 assertEquals( JavaIdentifier.valueOf( "testTestTestTest" ), 1442 this.getJomcTool().toJavaMethodName( " Test tEst teSt tesT " ) ); 1443 1444 assertEquals( JavaIdentifier.valueOf( "_package" ), this.getJomcTool().toJavaMethodName( " Package " ) ); 1445 assertEquals( JavaIdentifier.valueOf( "_new" ), this.getJomcTool().toJavaMethodName( " New " ) ); 1446 } 1447 1448 @Test 1449 public final void testToJavaVariableName() throws Exception 1450 { 1451 try 1452 { 1453 this.getJomcTool().toJavaVariableName( "" ); 1454 fail( "Expected 'ParseException' not thrown." ); 1455 } 1456 catch ( final ParseException e ) 1457 { 1458 System.out.println( e.toString() ); 1459 assertNotNull( e.getMessage() ); 1460 } 1461 try 1462 { 1463 this.getJomcTool().toJavaVariableName( " " ); 1464 fail( "Expected 'ParseException' not thrown." ); 1465 } 1466 catch ( final ParseException e ) 1467 { 1468 System.out.println( e.toString() ); 1469 assertNotNull( e.getMessage() ); 1470 } 1471 1472 assertEquals( JavaIdentifier.valueOf( "testTestTest" ), 1473 this.getJomcTool().toJavaVariableName( " test test test " ) ); 1474 1475 assertEquals( JavaIdentifier.valueOf( "testTestTestTest" ), 1476 this.getJomcTool().toJavaVariableName( " Test tEst teSt tesT " ) ); 1477 1478 assertEquals( JavaIdentifier.valueOf( "testTestTestTest" ), 1479 this.getJomcTool().toJavaVariableName( " Test tEst teSt tesT " ) ); 1480 1481 assertEquals( JavaIdentifier.valueOf( "_package" ), this.getJomcTool().toJavaVariableName( " Package " ) ); 1482 assertEquals( JavaIdentifier.valueOf( "_new" ), this.getJomcTool().toJavaVariableName( " New " ) ); 1483 } 1484 1485 @Test 1486 @SuppressWarnings( "deprecation" ) 1487 public final void testParentTemplateProfile() throws Exception 1488 { 1489 final File templateLocation = this.getNextOutputDirectory(); 1490 File templatesDir = new File( templateLocation, "org" ); 1491 templatesDir = new File( templatesDir, "jomc" ); 1492 templatesDir = new File( templatesDir, "tools" ); 1493 templatesDir = new File( templatesDir, "templates" ); 1494 templatesDir = new File( templatesDir, "tmp" ); 1495 1496 assertTrue( templatesDir.mkdirs() ); 1497 1498 final Properties p = new Properties(); 1499 p.setProperty( "parent-template-profile", "test" ); 1500 1501 final OutputStream profileProperties = new FileOutputStream( new File( templatesDir, "profile.properties" ) ); 1502 p.store( profileProperties, this.getClass().getName() ); 1503 profileProperties.close(); 1504 1505 this.getJomcTool().setDefaultTemplateProfile( null ); 1506 this.getJomcTool().setTemplateLocation( templateLocation.toURI().toURL() ); 1507 1508 assertEquals( "test", this.getJomcTool().getParentTemplateProfile( "tmp" ) ); 1509 assertEquals( "jomc-java-bundles", this.getJomcTool().getParentTemplateProfile( "test" ) ); 1510 assertEquals( this.getJomcTool().getDefaultTemplateProfile(), 1511 this.getJomcTool().getParentTemplateProfile( "jomc-java-bundles" ) ); 1512 1513 assertNull( this.getJomcTool().getParentTemplateProfile( this.getJomcTool().getDefaultTemplateProfile() ) ); 1514 this.getJomcTool().setTemplateLocation( null ); 1515 this.getJomcTool().setDefaultTemplateEncoding( null ); 1516 } 1517 1518 @Test 1519 public final void testHtmlString() throws Exception 1520 { 1521 assertEquals( "<>"∗&", this.getJomcTool().getHtmlString( "<>\"*&" ) ); 1522 } 1523 1524 public static void assertNullPointerException( final NullPointerException e ) 1525 { 1526 assertNotNull( e ); 1527 assertNotNull( e.getMessage() ); 1528 System.out.println( e.toString() ); 1529 } 1530 1531 public static void assertIllegalArgumentException( final IllegalArgumentException e ) 1532 { 1533 assertNotNull( e ); 1534 assertNotNull( e.getMessage() ); 1535 System.out.println( e.toString() ); 1536 } 1537 1538}