6
6
package com.github.hauner.openapi.core.writer.java
7
7
8
8
import io.openapiprocessor.core.converter.ApiOptions
9
- import io.openapiprocessor.core.model.datatypes.DataTypeConstraints
10
9
import io.openapiprocessor.core.model.datatypes.DataTypeName
11
- import io.openapiprocessor.core.model.datatypes.ObjectDataType as ObjectDataTypeP
12
10
import io.openapiprocessor.core.model.datatypes.StringDataType
13
- import io.openapiprocessor.core.support.datatypes.ListDataType
14
11
import io.openapiprocessor.core.support.datatypes.ObjectDataType
15
12
import io.openapiprocessor.core.writer.java.BeanValidationFactory
16
13
import io.openapiprocessor.core.writer.java.DataTypeWriter
@@ -20,6 +17,9 @@ import spock.lang.Specification
20
17
21
18
import static io.openapiprocessor.core.AssertKt.extractBody
22
19
import static io.openapiprocessor.core.AssertKt.extractImports
20
+ import static io.openapiprocessor.core.support.datatypes.Builder.listDataType
21
+ import static io.openapiprocessor.core.support.datatypes.Builder.objectDataType
22
+ import static io.openapiprocessor.core.support.datatypes.Builder.propertyDataType
23
23
24
24
class DataTypeWriterSpec extends Specification {
25
25
def headerWriter = Mock SimpleWriter
@@ -29,8 +29,7 @@ class DataTypeWriterSpec extends Specification {
29
29
def target = new StringWriter ()
30
30
31
31
void " writes 'generated' comment" () {
32
- def dataType = new ObjectDataType (
33
- ' Book' , ' ' , [:], null , false , null )
32
+ def dataType = objectDataType (' Book' , ' ' )
34
33
35
34
when :
36
35
writer. write (target, dataType)
@@ -41,8 +40,7 @@ class DataTypeWriterSpec extends Specification {
41
40
42
41
void " writes 'package'" () {
43
42
def pkg = ' io.openapiprocessor.test'
44
- def dataType = new ObjectDataType (
45
- ' Book' , pkg, [:], null , false , null )
43
+ def dataType = objectDataType (' Book' , pkg)
46
44
47
45
when :
48
46
writer. write (target, dataType)
@@ -57,10 +55,9 @@ package $pkg;
57
55
void " writes imports of nested types" () {
58
56
def pkg = ' external'
59
57
60
- def dataType = new ObjectDataType (' Book' , ' mine' , [
61
- ' isbn' : new ObjectDataTypeP (new DataTypeName (id, type), pkg, [:],
62
- null , false , null )
63
- ], null , false , null )
58
+ def dataType = objectDataType (' Book' , ' mine' , [
59
+ ' isbn' : propertyDataType (objectDataType (new DataTypeName (id, type), pkg))
60
+ ])
64
61
65
62
when :
66
63
writer. write (target, dataType)
@@ -76,9 +73,9 @@ package $pkg;
76
73
}
77
74
78
75
void " writes import of generic list type" () {
79
- def dataType = new ObjectDataType (' Book' , ' mine' , [
80
- ' authors' : new ListDataType (new StringDataType (), new DataTypeConstraints ( ))
81
- ], null , false , null )
76
+ def dataType = objectDataType (' Book' , ' mine' , [
77
+ ' authors' : propertyDataType (listDataType (new StringDataType ()))
78
+ ])
82
79
83
80
when :
84
81
writer. write (target, dataType)
@@ -89,11 +86,11 @@ package $pkg;
89
86
}
90
87
91
88
void " writes import of generic object list type" () {
92
- def dataType = new ObjectDataType (' Foo' , ' mine' , [
93
- ' bars' : new ListDataType (
94
- new ObjectDataTypeP (new DataTypeName (id, type), ' other' , [:],
95
- null , false , null ), new DataTypeConstraints ( ))
96
- ], null , false , null )
89
+ def dataType = objectDataType (' Foo' , ' mine' , [
90
+ ' bars' : propertyDataType (listDataType (
91
+ objectDataType (new DataTypeName (id, type), ' other' )
92
+ ))
93
+ ])
97
94
98
95
when :
99
96
writer. write (target, dataType)
@@ -110,9 +107,8 @@ package $pkg;
110
107
111
108
void " writes class" () {
112
109
def pkg = ' io.openapiprocessor.test'
113
- def dataType = new ObjectDataTypeP (
114
- new DataTypeName (id, type), pkg, [:],
115
- null , true , null )
110
+
111
+ def dataType = objectDataType (new DataTypeName (id, type), pkg, [:])
116
112
117
113
when :
118
114
writer. write (target, dataType)
@@ -132,10 +128,11 @@ public class $type {
132
128
133
129
void " writes simple properties" () {
134
130
def pkg = ' io.openapiprocessor.test'
135
- def dataType = new ObjectDataType (' Book' , pkg, [
136
- isbn : new StringDataType (),
137
- title : new StringDataType ()
138
- ], null , false , null )
131
+
132
+ def dataType = objectDataType (' Book' , pkg, [
133
+ isbn : propertyDataType (new StringDataType ()),
134
+ title : propertyDataType (new StringDataType ())
135
+ ])
139
136
140
137
when :
141
138
writer. write (target, dataType)
@@ -151,12 +148,12 @@ public class $type {
151
148
""" )
152
149
}
153
150
154
- void " writes object property" () {
151
+ void " writes object property" () {
155
152
def pkg = ' io.openapiprocessor.test'
156
- def dataType = new ObjectDataType ( ' Foo ' , pkg, [
157
- bar : new ObjectDataTypeP ( new DataTypeName (id, type), ' other ' , [:],
158
- null , false , null ),
159
- ], null , false , null )
153
+
154
+ def dataType = objectDataType ( ' Foo ' , pkg, [
155
+ bar : propertyDataType (objectDataType ( new DataTypeName (id, type), ' other ' , [:]))
156
+ ])
160
157
161
158
when :
162
159
writer. write (target, dataType)
@@ -172,10 +169,11 @@ public class $type {
172
169
173
170
void " writes property getters & setters" () {
174
171
def pkg = ' io.openapiprocessor.test'
175
- def dataType = new ObjectDataType (' Book' , pkg, [
176
- isbn : new StringDataType (),
177
- title : new StringDataType ()
178
- ], null , false , null )
172
+
173
+ def dataType = objectDataType (' Book' , pkg, [
174
+ isbn : propertyDataType (new StringDataType ()),
175
+ title : propertyDataType (new StringDataType ())
176
+ ])
179
177
180
178
when :
181
179
writer. write (target, dataType)
@@ -205,10 +203,10 @@ public class $type {
205
203
206
204
void " writes object property getter & setter" () {
207
205
def pkg = ' com.github.hauner.openapi'
208
- def dataType = new ObjectDataType ( ' Foo ' , pkg, [
209
- bar : new ObjectDataTypeP ( new DataTypeName (id, type), ' other ' , [:],
210
- null , false , null ),
211
- ], null , false , null )
206
+
207
+ def dataType = objectDataType ( ' Foo ' , pkg, [
208
+ bar : propertyDataType (objectDataType ( new DataTypeName (id, type), ' other ' ))
209
+ ])
212
210
213
211
when :
214
212
writer. write (target, dataType)
@@ -232,6 +230,7 @@ public class $type {
232
230
233
231
void " writes deprecated class" () {
234
232
def pkg = ' io.openapiprocessor.test'
233
+
235
234
def dataType = new ObjectDataType (
236
235
' Bar' , pkg, [:],null , true , null )
237
236
@@ -249,9 +248,12 @@ public class Bar {
249
248
250
249
void " writes deprecated property" () {
251
250
def pkg = ' io.openapiprocessor.test'
252
- def dataType = new ObjectDataType (' Book' , pkg, [
253
- isbn : new StringDataType (null , true , null )
254
- ], null , false , null )
251
+
252
+ def dataType = objectDataType (' Book' , pkg, [
253
+ isbn : propertyDataType (
254
+ new StringDataType (null , true , null )
255
+ )
256
+ ])
255
257
256
258
when :
257
259
writer. write (target, dataType)
@@ -266,9 +268,12 @@ public class Bar {
266
268
267
269
void " writes deprecated property getters & setters" () {
268
270
def pkg = ' io.openapiprocessor.test'
269
- def dataType = new ObjectDataType (' Book' , pkg, [
270
- isbn : new StringDataType (null , true , null )
271
- ], null , false , null )
271
+
272
+ def dataType = objectDataType (' Book' , pkg, [
273
+ isbn : propertyDataType (
274
+ new StringDataType (null , true , null )
275
+ )
276
+ ])
272
277
273
278
when :
274
279
writer. write (target, dataType)
@@ -291,10 +296,10 @@ public class Bar {
291
296
void " writes properties with valid java identifiers" () {
292
297
def pkg = ' com.github.hauner.openapi'
293
298
294
- def dataType = new ObjectDataType (' Book' , pkg, [
295
- ' a-isbn' : new StringDataType (),
296
- ' a-title' : new StringDataType ()
297
- ], null , false , null )
299
+ def dataType = objectDataType (' Book' , pkg, [
300
+ ' a-isbn' : propertyDataType ( new StringDataType () ),
301
+ ' a-title' : propertyDataType ( new StringDataType () )
302
+ ])
298
303
299
304
when :
300
305
writer. write (target, dataType)
@@ -312,10 +317,10 @@ public class Bar {
312
317
void " writes imports of @JsonProperty" () {
313
318
def pkg = ' external'
314
319
315
- def dataType = new ObjectDataType (' Book' , pkg, [
316
- ' isbn' : new StringDataType (),
317
- ' title' : new StringDataType ()
318
- ], null , false , null )
320
+ def dataType = objectDataType (' Book' , pkg, [
321
+ ' isbn' : propertyDataType ( new StringDataType () ),
322
+ ' title' : propertyDataType ( new StringDataType () )
323
+ ])
319
324
320
325
when :
321
326
writer. write (target, dataType)
@@ -328,10 +333,10 @@ public class Bar {
328
333
void " writes properties with @JsonProperty annotation" () {
329
334
def pkg = ' com.github.hauner.openapi'
330
335
331
- def dataType = new ObjectDataType (' Book' , pkg, [
332
- ' a-isbn' : new StringDataType (),
333
- ' a-title' : new StringDataType ()
334
- ], null , false , null )
336
+ def dataType = objectDataType (' Book' , pkg, [
337
+ ' a-isbn' : propertyDataType ( new StringDataType () ),
338
+ ' a-title' : propertyDataType ( new StringDataType () )
339
+ ] )
335
340
336
341
when :
337
342
writer. write (target, dataType)
0 commit comments