/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

apply plugin: 'scala'
apply plugin: 'eclipse'
compileTestScala.options.encoding = 'UTF-8'

repositories {
    mavenCentral()
    mavenLocal()
}

tasks.withType(Test) {
    testLogging {
        events "passed", "skipped", "failed"
        showStandardStreams = true
        exceptionFormat = 'full'
    }
    outputs.upToDateWhen { false } // force tests to run every time
}

dependencies {
    implementation "junit:junit:4.11"
    implementation "org.scala-lang:scala-library:${gradle.scala.version}"
    implementation "org.scalatest:scalatest_${gradle.scala.depVersion}:3.0.8"
    implementation "org.apache.openwhisk:openwhisk-common:${gradle.openwhisk.version}"
    implementation "org.apache.openwhisk:openwhisk-tests:${gradle.openwhisk.version}:tests"
    implementation "org.apache.openwhisk:openwhisk-tests:${gradle.openwhisk.version}:test-sources"
    implementation group: 'com.typesafe.akka', name: "akka-http2-support_${gradle.scala.depVersion}", version: "${gradle.akka_http.version}"
    implementation group: 'com.typesafe.akka', name: "akka-http-xml_${gradle.scala.depVersion}", version: "${gradle.akka_http.version}"
    implementation group: 'com.typesafe.akka', name: "akka-discovery_${gradle.scala.depVersion}", version: "${gradle.akka.version}"
    implementation group: 'com.typesafe.akka', name: "akka-protobuf_${gradle.scala.depVersion}", version: "${gradle.akka.version}"
    implementation group: 'com.typesafe.akka', name: "akka-remote_${gradle.scala.depVersion}", version: "${gradle.akka.version}"
    implementation group: 'com.typesafe.akka', name: "akka-cluster_${gradle.scala.depVersion}", version: "${gradle.akka.version}"
}

tasks.withType(ScalaCompile) {
    scalaCompileOptions.additionalParameters = gradle.scala.compileFlags
}

task testPython3(type: Test) {
}

task buildArtifacts(type:Exec) {
    workingDir 'src/test/resources'
    commandLine './build.sh'
}

tasks.withType(Test) {
    dependsOn buildArtifacts
}

testClasses.dependsOn(buildArtifacts)
