@@ -13,32 +13,40 @@ public class ModulesAndNamespacesTest {
1313
1414 @ Test
1515 public void testNamespacesAndModules () {
16- final File outputDir = new File ("target/test-ts-modules" );
16+ files (new File ("target/test-ts-modules" ), false );
17+ files (new File ("target/test-ts-modules-pkg" ), true );
18+ }
19+
20+ public void files (File outputDir , boolean mapPackages ) {
1721 outputDir .mkdirs ();
1822
19- file ("Test1" , null , null , TypeScriptOutputKind .global , TypeScriptFileType .declarationFile , new File (outputDir , "test-mn1.d.ts" ));
20- file ("Test2" , null , "NS2" , TypeScriptOutputKind .global , TypeScriptFileType .declarationFile , new File (outputDir , "test-mn2.d.ts" ));
21- file ("Test3a" , "mod3a" , null , TypeScriptOutputKind .ambientModule , TypeScriptFileType .declarationFile , new File (outputDir , "test-mn3a.d.ts" ));
22- file ("Test3b" , null , null , TypeScriptOutputKind .module , TypeScriptFileType .declarationFile , new File (outputDir , "test-mn3b.d.ts" ));
23- file ("Test4a" , "mod4a" , "NS4a" , TypeScriptOutputKind .ambientModule , TypeScriptFileType .declarationFile , new File (outputDir , "test-mn4a.d.ts" ));
24- file ("Test4b" , null , "NS4b" , TypeScriptOutputKind .module , TypeScriptFileType .declarationFile , new File (outputDir , "test-mn4b.d.ts" ));
25-
26- file ("Test5" , null , null , TypeScriptOutputKind .global , TypeScriptFileType .implementationFile , new File (outputDir , "test-mn5.ts" ));
27- file ("Test6" , null , "NS6" , TypeScriptOutputKind .global , TypeScriptFileType .implementationFile , new File (outputDir , "test-mn6.ts" ));
28- file ("Test7" , null , null , TypeScriptOutputKind .module , TypeScriptFileType .implementationFile , new File (outputDir , "test-mn7.ts" ));
29- file ("Test8" , null , "NS8" , TypeScriptOutputKind .module , TypeScriptFileType .implementationFile , new File (outputDir , "test-mn8.ts" ));
23+ file ("Test1" , null , null , mapPackages , TypeScriptOutputKind .global , TypeScriptFileType .declarationFile , new File (outputDir , "test-mn1.d.ts" ));
24+ file ("Test2" , null , "NS2" , mapPackages , TypeScriptOutputKind .global , TypeScriptFileType .declarationFile , new File (outputDir , "test-mn2.d.ts" ));
25+ file ("Test3a" , "mod3a" , null , mapPackages , TypeScriptOutputKind .ambientModule , TypeScriptFileType .declarationFile , new File (outputDir , "test-mn3a.d.ts" ));
26+ file ("Test3b" , null , null , mapPackages , TypeScriptOutputKind .module , TypeScriptFileType .declarationFile , new File (outputDir , "test-mn3b.d.ts" ));
27+ file ("Test4a" , "mod4a" , "NS4a" , mapPackages , TypeScriptOutputKind .ambientModule , TypeScriptFileType .declarationFile , new File (outputDir , "test-mn4a.d.ts" ));
28+ file ("Test4b" , null , "NS4b" , mapPackages , TypeScriptOutputKind .module , TypeScriptFileType .declarationFile , new File (outputDir , "test-mn4b.d.ts" ));
29+
30+ file ("Test5" , null , null , mapPackages , TypeScriptOutputKind .global , TypeScriptFileType .implementationFile , new File (outputDir , "test-mn5.ts" ));
31+ file ("Test6" , null , "NS6" , mapPackages , TypeScriptOutputKind .global , TypeScriptFileType .implementationFile , new File (outputDir , "test-mn6.ts" ));
32+ file ("Test7" , null , null , mapPackages , TypeScriptOutputKind .module , TypeScriptFileType .implementationFile , new File (outputDir , "test-mn7.ts" ));
33+ file ("Test8" , null , "NS8" , mapPackages , TypeScriptOutputKind .module , TypeScriptFileType .implementationFile , new File (outputDir , "test-mn8.ts" ));
3034 }
3135
32- private static void file (String prefix , String module , String namespace , TypeScriptOutputKind outputKind , TypeScriptFileType outputFileType , File output ) {
36+ private static void file (String prefix , String module , String namespace , boolean mapPackagesToNamespaces , TypeScriptOutputKind outputKind , TypeScriptFileType outputFileType , File output ) {
3337 final Settings settings = new Settings ();
3438 settings .jsonLibrary = JsonLibrary .jackson2 ;
3539 settings .addTypeNamePrefix = prefix ;
3640 settings .module = module ;
3741 settings .namespace = namespace ;
42+ settings .mapPackagesToNamespaces = mapPackagesToNamespaces ;
3843 settings .outputKind = outputKind ;
3944 settings .outputFileType = outputFileType ;
4045 if (outputFileType == TypeScriptFileType .implementationFile ) {
41- settings .extensions .add (new TestFunctionExtention ());
46+ settings .mapClasses = ClassMapping .asClasses ;
47+ }
48+ if (outputFileType == TypeScriptFileType .implementationFile && !mapPackagesToNamespaces ) {
49+ settings .extensions .add (new TestFunctionExtension ());
4250 }
4351 new TypeScriptGenerator (settings ).generateTypeScript (Input .from (Data .class , Direction .class , Align .class ), Output .to (output ));
4452 }
@@ -59,12 +67,13 @@ enum Align {
5967 Right
6068 }
6169
62- private static class TestFunctionExtention extends EmitterExtension {
70+ private static class TestFunctionExtension extends EmitterExtension {
6371
6472 @ Override
6573 public EmitterExtensionFeatures getFeatures () {
6674 final EmitterExtensionFeatures features = new EmitterExtensionFeatures ();
6775 features .generatesRuntimeCode = true ;
76+ features .worksWithPackagesMappedToNamespaces = true ;
6877 return features ;
6978 }
7079
0 commit comments