diff --git a/src/main/java/io/codearte/accurest/maven/GenerateSpecsMojo.java b/src/main/java/io/codearte/accurest/maven/GenerateSpecsMojo.java index aba7bb50b2..9019e87d68 100644 --- a/src/main/java/io/codearte/accurest/maven/GenerateSpecsMojo.java +++ b/src/main/java/io/codearte/accurest/maven/GenerateSpecsMojo.java @@ -24,10 +24,13 @@ public class GenerateSpecsMojo extends AbstractMojo { @Parameter(defaultValue = "${project.build.directory}") protected File projectBuildDirectory; + @Parameter(property = "contractsDir", defaultValue = "/src/test/resources/stubs", required = false) + private String contractsDir = "/src/test/resources/stubs"; + public void execute() throws MojoExecutionException, MojoFailureException { AccurestConfigProperties config = new AccurestConfigProperties(); - config.setContractsDslDir(new File(baseDir, "/src/test/resources/stubs")); + config.setContractsDslDir(new File(baseDir, contractsDir)); config.setBasePackageForTests("io.codearte.accurest.tests"); config.setGeneratedTestSourcesDir(new File(projectBuildDirectory, "/generated-sources/accurest")); diff --git a/src/main/java/io/codearte/accurest/maven/GenerateStubsMojo.java b/src/main/java/io/codearte/accurest/maven/GenerateStubsMojo.java index 5ba6ed76fb..4fed9aa6c8 100644 --- a/src/main/java/io/codearte/accurest/maven/GenerateStubsMojo.java +++ b/src/main/java/io/codearte/accurest/maven/GenerateStubsMojo.java @@ -25,9 +25,12 @@ public class GenerateStubsMojo extends AbstractMojo { @Parameter(property = "mappingsDir", defaultValue = "mappings", required = false) private String mappingsDir = "mappings"; + @Parameter(property = "contractsDir", defaultValue = "/src/test/resources/stubs", required = false) + private String contractsDir = "/src/test/resources/stubs"; + public void execute() throws MojoExecutionException, MojoFailureException { AccurestConfigProperties config = new AccurestConfigProperties(); - config.setContractsDslDir(new File(baseDir, "/src/test/resources/stubs")); + config.setContractsDslDir(new File(baseDir, contractsDir)); config.setStubsOutputDir(new File(projectBuildDirectory, mappingsDir)); getLog().info("Accurest Plugin: Invoking GroovyDSL to WireMock client stubs conversion"); diff --git a/src/test/java/io/codearte/accurest/maven/PluginUnitTest.java b/src/test/java/io/codearte/accurest/maven/PluginUnitTest.java index d1e0bf696c..d25fad2751 100644 --- a/src/test/java/io/codearte/accurest/maven/PluginUnitTest.java +++ b/src/test/java/io/codearte/accurest/maven/PluginUnitTest.java @@ -32,6 +32,13 @@ public class PluginUnitTest { assertFilesPresent(basedir, "target/foo/Sample.json"); } + @Test + public void shouldGenerateWiremockStubsInSelectedLocation2() throws Exception { + File basedir = resources.getBasedir("customContractsLocation"); + maven.executeMojo(basedir, "generateStubs", TestMavenRuntime.newParameter("contractsDir", "src/foo")); + assertFilesPresent(basedir, "target/mappings/Sample.json"); + } + @Test public void shouldGenerateContractSpecificationInDefaultLocation() throws Exception { File basedir = resources.getBasedir("basic"); diff --git a/src/test/projects/customContractsLocation/pom.xml b/src/test/projects/customContractsLocation/pom.xml new file mode 100644 index 0000000000..fed7b7d67e --- /dev/null +++ b/src/test/projects/customContractsLocation/pom.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + + io.codearte.accurest.sample + sample-project + 0.1 + + + + + io.codearte.accurest + accurest-maven-plugin + + + + + \ No newline at end of file diff --git a/src/test/projects/customContractsLocation/src/foo/Sample.groovy b/src/test/projects/customContractsLocation/src/foo/Sample.groovy new file mode 100644 index 0000000000..673ab7bd8d --- /dev/null +++ b/src/test/projects/customContractsLocation/src/foo/Sample.groovy @@ -0,0 +1,18 @@ +io.codearte.accurest.dsl.GroovyDsl.make { + request { + method 'POST' + url('/users') { + + } + headers { + header 'Content-Type': 'application/json' + } + body '''{ "login" : "john", "name": "John The Contract" }''' + } + response { + status 200 + headers { + header 'Location': '/users/john' + } + } +} \ No newline at end of file