All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.stanfy.helium.gradle.GenerateApiTestsTask.groovy Maven / Gradle / Ivy

package com.stanfy.helium.gradle

import com.stanfy.helium.Helium
import com.stanfy.helium.handler.codegen.tests.RestApiPokeTestsGenerator
import com.stanfy.helium.handler.codegen.tests.ScenarioTestsGenerator
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction

/**
 * Generates API tests using the specification.
 */
class GenerateApiTestsTask extends DefaultTask {

  /** Helium instance. */
  Helium helium

  /** Input specification file. */
  @InputFile
  File input

  /** Output directory. */
  @OutputDirectory
  File output

  @TaskAction
  void generate() {
    File sourcesDir = new File(output, "src/test/java")
    sourcesDir.mkdirs()
    File resDir = new File(output, "src/test/resources")
    resDir.mkdirs()
    helium.processBy new RestApiPokeTestsGenerator(sourcesDir, resDir)
    helium.processBy new ScenarioTestsGenerator(input, sourcesDir, resDir)

    File buildFile = new File(output, "build.gradle")
    buildFile.withWriter('UTF-8') {
      it << """
apply plugin: 'java'

repositories {
  mavenCentral()
  mavenLocal()
  maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
}

test {
  ignoreFailures = ${project.helium.ignoreFailures}
}

dependencies {
  testCompile '${HeliumExtension.HELIUM_DEP}:${HeliumExtension.VERSION}'
  testCompile 'junit:junit:4.11'
}
"""
    }



  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy