@@ -12,37 +12,37 @@ sdkAutomation.generator.set("java")
1212val services = sdkAutomation.services.get()
1313val serviceNaming = sdkAutomation.serviceNaming.get()
1414
15- tasks.withType(GenerateTask ::class ).configureEach {
16- val serviceId = project.name.lowercase()
17- val modelNamespace = " com.adyen.model.${serviceId} "
18-
19- templateDir.set(" $projectDir /repo/templates-v7" )
20- library.set(" jersey3" )
21- modelPackage.set(modelNamespace.replace(' /' , ' .' ))
22- apiPackage.set(" com.adyen.service.${serviceId} " )
23- apiNameSuffix.set(" Api" )
24- additionalProperties.putAll(mapOf (
25- " dateLibrary" to " java8" ,
26- " openApiNullable" to " false" ,
27- " enumPropertyNaming" to " legacy" ,
28- " javaxPackage" to " jakarta" ,
29- " containerDefaultToNull" to " true"
30- ))
31-
32- if (serviceId.endsWith(" webhooks" )) {
33- // for webhooks only apply extra config.yaml (to generate WebhookHandler)
34- configFile.set(" $projectDir /config.yaml" )
35- } else {
36- // for APIs only add custom code to handle nullable properties
37- additionalProperties.put(" handleNullableProperties" , true )
38- }
39- }
40-
4115// Deployment: copy and rename models/services
4216services.forEach { svc ->
4317 val serviceName = serviceNaming[svc.id]!!
4418 val serviceId = serviceName.lowercase()
4519
20+ // Configuration
21+ tasks.named<GenerateTask >(" generate${svc.name} " ) {
22+ val modelNamespace = " com.adyen.model.${serviceId} "
23+
24+ templateDir.set(" $projectDir /repo/templates-v7" )
25+ library.set(" jersey3" )
26+ modelPackage.set(modelNamespace.replace(' /' , ' .' ))
27+ apiPackage.set(" com.adyen.service.${serviceId} " )
28+ apiNameSuffix.set(" Api" )
29+ additionalProperties.putAll(mapOf (
30+ " dateLibrary" to " java8" ,
31+ " openApiNullable" to " false" ,
32+ " enumPropertyNaming" to " legacy" ,
33+ " javaxPackage" to " jakarta" ,
34+ " containerDefaultToNull" to " true"
35+ ))
36+
37+ if (serviceId.endsWith(" webhooks" )) {
38+ // for webhooks only apply extra config.yaml (to generate WebhookHandler)
39+ configFile.set(" $projectDir /config.yaml" )
40+ } else {
41+ // for APIs only add custom code to handle nullable properties
42+ additionalProperties.put(" handleNullableProperties" , true )
43+ }
44+ }
45+
4646 // words replacement to enforce naming conventions (after code generation)
4747 val replaceReservedWords = { directory: Any ->
4848 fileTree(directory).matching { include(" **/*.java" ) }.forEach { file ->
@@ -153,29 +153,30 @@ services.forEach { svc ->
153153// Test binlookup generation
154154tasks.named(" binlookup" ) {
155155 doLast {
156- assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/binlookup/Amount.java" ).exists ())
157- assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/service/BinLookupApi.java" ).exists ())
156+ assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/binlookup/Amount.java" ).readText().isNotEmpty ())
157+ assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/service/binlookup/ BinLookupApi.java" ).readText().isNotEmpty ())
158158 // verify DefaultApi class no longer exists (it has been renamed to BinLookupApi)
159159 assert (! file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/service/binlookup/DefaultApi.java" ).exists())
160160 }
161161}
162162// Test checkout generation
163163tasks.named(" checkout" ) {
164164 doLast {
165- assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/checkout/Amount.java" ).exists ())
166- assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/service/checkout/PaymentsApi.java" ).exists ())
165+ assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/checkout/Amount.java" ).readText().isNotEmpty ())
166+ assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/service/checkout/PaymentsApi.java" ).readText().isNotEmpty ())
167167 }
168168}
169169// Test acswebhooks generation
170170tasks.named(" acswebhooks" ) {
171171 doLast {
172- assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/acswebhooks/Amount.java" ).exists ())
172+ assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/acswebhooks/Amount.java" ).readText().isNotEmpty ())
173173 // verify no service package is created for a webhook
174174 assert (! file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/service/acswebhooks" ).exists())
175175 // verify no API class is created for a webhook
176176 assert (! file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/service/AcsWebhooksApi.java" ).exists())
177177 // verify Webhook Handler is created
178- assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/acswebhooks/AcsWebhooksHandler.java" ).exists())
178+ val fileContent = file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/acswebhooks/AcsWebhooksHandler.java" ).readText()
179+ assert (fileContent.contains(" getAuthenticationNotificationRequest" )) { " 'getAuthenticationNotificationRequest' method not found in AcsWebhooksHandler.java" }
179180 }
180181}
181182
@@ -194,7 +195,7 @@ tasks.named("relayedauthorizationwebhooks") {
194195 // verify Webhook Handler is created
195196 assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/relayedauthorizationwebhooks/RelayedAuthorizationWebhooksHandler.java" ).exists())
196197 // verify model is created
197- assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/relayedauthorizationwebhooks/RelayedAuthorisationRequest.java" ).exists ())
198+ assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/relayedauthorizationwebhooks/RelayedAuthorisationRequest.java" ).readText().isNotEmpty ())
198199
199200 val fileContent = file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/relayedauthorizationwebhooks/RelayedAuthorizationWebhooksHandler.java" ).readText()
200201 assert (fileContent.contains(" getRelayedAuthorisationRequest" )) { " 'getRelayedAuthorisationRequest' method not found in RelayedAuthorizationWebhooksHandler.java" }
@@ -203,9 +204,9 @@ tasks.named("relayedauthorizationwebhooks") {
203204
204205tasks.named(" capital" ) {
205206 doLast {
206- assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/capital/Amount.java" ).exists ())
207- assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/service/capital/GrantsApi.java" ).exists ())
208- assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/service/capital/GrantOffersApi.java" ).exists ())
209- assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/service/capital/GrantAccountsApi.java" ).exists ())
207+ assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/model/capital/Amount.java" ).readText().isNotEmpty ())
208+ assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/service/capital/GrantsApi.java" ).readText().isNotEmpty ())
209+ assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/service/capital/GrantOffersApi.java" ).readText().isNotEmpty ())
210+ assert (file(" ${layout.projectDirectory} /repo/src/main/java/com/adyen/service/capital/GrantAccountsApi.java" ).readText().isNotEmpty ())
210211 }
211212}
0 commit comments