@@ -65,9 +65,82 @@ func TestGenerateModelWithPropertiesAndAdditionalProperties(t *testing.T) {
6565 assertContains (t , generated , "public Builder additionalProperty(String name, Object value)" )
6666}
6767
68+ func TestGenerateModelWithoutBuilderForTypeAliases (t * testing.T ) {
69+ t .Parallel ()
70+
71+ tmp := t .TempDir ()
72+ specPath := filepath .Join (tmp , "openapi.json" )
73+ outputDir := filepath .Join (tmp , "src" , "main" , "java" )
74+ resourceDir := filepath .Join (tmp , "src" , "main" , "resources" )
75+
76+ spec := `{
77+ "openapi": "3.0.3",
78+ "info": {
79+ "title": "test",
80+ "version": "1.0.0"
81+ },
82+ "paths": {},
83+ "components": {
84+ "schemas": {
85+ "Lon": {
86+ "type": "number",
87+ "format": "float"
88+ },
89+ "Meta": {
90+ "type": "object"
91+ }
92+ }
93+ }
94+ }`
95+ if err := os .WriteFile (specPath , []byte (spec ), 0o644 ); err != nil {
96+ t .Fatalf ("write spec: %v" , err )
97+ }
98+
99+ params := Params {
100+ SpecPath : specPath ,
101+ OutputDir : outputDir ,
102+ ResourceDir : resourceDir ,
103+ BasePackage : "com.test.sdk" ,
104+ }
105+ if err := Run (context .Background (), params ); err != nil {
106+ t .Fatalf ("run generator: %v" , err )
107+ }
108+
109+ lonPath := filepath .Join (outputDir , "com" , "test" , "sdk" , "models" , "Lon.java" )
110+ lonContent , err := os .ReadFile (lonPath )
111+ if err != nil {
112+ t .Fatalf ("read generated Lon model: %v" , err )
113+ }
114+ lonGenerated := string (lonContent )
115+
116+ assertContains (t , lonGenerated , "public record Lon(" )
117+ assertContains (t , lonGenerated , "Float value" )
118+ assertNotContains (t , lonGenerated , "public static Builder builder()" )
119+ assertNotContains (t , lonGenerated , "public static final class Builder" )
120+
121+ metaPath := filepath .Join (outputDir , "com" , "test" , "sdk" , "models" , "Meta.java" )
122+ metaContent , err := os .ReadFile (metaPath )
123+ if err != nil {
124+ t .Fatalf ("read generated Meta model: %v" , err )
125+ }
126+ metaGenerated := string (metaContent )
127+
128+ assertContains (t , metaGenerated , "public record Meta(" )
129+ assertContains (t , metaGenerated , "java.util.Map<String, Object> value" )
130+ assertNotContains (t , metaGenerated , "public static Builder builder()" )
131+ assertNotContains (t , metaGenerated , "public static final class Builder" )
132+ }
133+
68134func assertContains (t * testing.T , content , want string ) {
69135 t .Helper ()
70136 if ! strings .Contains (content , want ) {
71137 t .Fatalf ("expected generated output to contain %q" , want )
72138 }
73139}
140+
141+ func assertNotContains (t * testing.T , content , want string ) {
142+ t .Helper ()
143+ if strings .Contains (content , want ) {
144+ t .Fatalf ("expected generated output to not contain %q" , want )
145+ }
146+ }
0 commit comments