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