From 3e1bccf128f255ff2a801e93d0e4af093015b6f7 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Thu, 21 Apr 2016 13:44:03 +0200 Subject: [PATCH] Added checks for presence of groovy contracts in the produced jars --- .../plugin/AccurestIntegrationSpec.groovy | 23 ++++++++++++++++++- .../plugin/MessagingProjectSpec.groovy | 2 ++ .../plugin/SampleJerseyProjectSpec.groovy | 2 ++ .../accurest/plugin/SampleProjectSpec.groovy | 2 ++ .../plugin/ScenarioProjectSpec.groovy | 2 ++ 5 files changed, 30 insertions(+), 1 deletion(-) diff --git a/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/AccurestIntegrationSpec.groovy b/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/AccurestIntegrationSpec.groovy index e673f79976..779d156be3 100644 --- a/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/AccurestIntegrationSpec.groovy +++ b/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/AccurestIntegrationSpec.groovy @@ -9,9 +9,10 @@ import spock.lang.Specification import java.nio.file.Files import java.nio.file.Path +import java.util.zip.ZipException +import java.util.zip.ZipFile import static java.nio.charset.StandardCharsets.UTF_8 - /** * @author Olga Maciaszek-Sharma * @author Denis Stepanov @@ -116,4 +117,24 @@ abstract class AccurestIntegrationSpec extends Specification { return new File('build.gradle', testProjectDir) } + protected boolean jarContainsAccurestContracts(String path) { + assert fileExists(path) + File rootFile = file(path) + boolean containsGroovyFiles = false + rootFile.eachFileRecurse { File file -> + try { + if (file.isFile() && file.name.endsWith('jar')) { + new ZipFile(file).entries().each { + if (it.name.endsWith('.groovy')) { + containsGroovyFiles = true + } + } + } + }catch (ZipException zipEx) { + println "Unable to open file ${file.name}" + } + } + return containsGroovyFiles + } + } diff --git a/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/MessagingProjectSpec.groovy b/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/MessagingProjectSpec.groovy index 0a57265380..0bb8b9697b 100755 --- a/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/MessagingProjectSpec.groovy +++ b/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/MessagingProjectSpec.groovy @@ -15,6 +15,7 @@ class MessagingProjectSpec extends AccurestIntegrationSpec { assert fileExists('build.gradle') expect: runTasksSuccessfully('check', "publishToMavenLocal") + jarContainsAccurestContracts('build/libs') } def "should pass basic flow for JUnit"() { @@ -24,6 +25,7 @@ class MessagingProjectSpec extends AccurestIntegrationSpec { expect: switchToJunitTestFramework('io.codearte.accurest.samples.book.MessagingBaseSpec', 'io.codearte.accurest.samples.book.MessagingBaseTest') runTasksSuccessfully('check', "publishToMavenLocal") + jarContainsAccurestContracts('build/libs') } } diff --git a/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/SampleJerseyProjectSpec.groovy b/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/SampleJerseyProjectSpec.groovy index fe970626ab..6a44c37fa1 100755 --- a/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/SampleJerseyProjectSpec.groovy +++ b/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/SampleJerseyProjectSpec.groovy @@ -15,6 +15,7 @@ class SampleJerseyProjectSpec extends AccurestIntegrationSpec { assert fileExists('build.gradle') expect: runTasksSuccessfully('check', "publishToMavenLocal") + jarContainsAccurestContracts('fraudDetectionService/build/libs') } def "should pass basic flow for JUnit"() { @@ -23,6 +24,7 @@ class SampleJerseyProjectSpec extends AccurestIntegrationSpec { assert fileExists('build.gradle') expect: runTasksSuccessfully('check', "publishToMavenLocal") + jarContainsAccurestContracts('fraudDetectionService/build/libs') } } diff --git a/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/SampleProjectSpec.groovy b/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/SampleProjectSpec.groovy index f14c277106..140a9d898a 100755 --- a/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/SampleProjectSpec.groovy +++ b/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/SampleProjectSpec.groovy @@ -15,6 +15,7 @@ class SampleProjectSpec extends AccurestIntegrationSpec { assert fileExists('build.gradle') expect: runTasksSuccessfully('check', "publishToMavenLocal") + jarContainsAccurestContracts('fraudDetectionService/build/libs') } def "should pass basic flow for JUnit"() { @@ -23,6 +24,7 @@ class SampleProjectSpec extends AccurestIntegrationSpec { assert fileExists('build.gradle') expect: runTasksSuccessfully('check', "publishToMavenLocal") + jarContainsAccurestContracts('fraudDetectionService/build/libs') } } diff --git a/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/ScenarioProjectSpec.groovy b/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/ScenarioProjectSpec.groovy index ce4db6e798..939b71db70 100755 --- a/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/ScenarioProjectSpec.groovy +++ b/accurest-gradle-plugin/src/test/groovy/io/codearte/accurest/plugin/ScenarioProjectSpec.groovy @@ -15,6 +15,7 @@ class ScenarioProjectSpec extends AccurestIntegrationSpec { assert fileExists('build.gradle') expect: runTasksSuccessfully('check', "publishToMavenLocal") + jarContainsAccurestContracts('fraudDetectionService/build/libs') } def "should pass basic flow for JUnit"() { @@ -23,6 +24,7 @@ class ScenarioProjectSpec extends AccurestIntegrationSpec { expect: switchToJunitTestFramework() runTasksSuccessfully('check', "publishToMavenLocal") + jarContainsAccurestContracts('fraudDetectionService/build/libs') } }