/*
 * SPDX-License-Identifier: Apache-2.0
 */

plugins {
    id 'checkstyle'
    id 'java-library-distribution'
    id 'jacoco'
}

group 'org.hyperledger.fabric.samples'
version '1.0-SNAPSHOT'

dependencies {
    compileOnly 'org.hyperledger.fabric-chaincode-java:fabric-chaincode-shim:2.+'
    implementation 'com.owlike:genson:1.5'
    testImplementation 'org.hyperledger.fabric-chaincode-java:fabric-chaincode-shim:2.+'
    testImplementation 'org.junit.jupiter:junit-jupiter:5.4.2'
    testImplementation 'org.assertj:assertj-core:3.11.1'
    testImplementation 'org.mockito:mockito-core:2.+'
}

repositories {
    maven {
        url "https://hyperledger.jfrog.io/hyperledger/fabric-maven"
    }
    jcenter()
    maven {
        url 'https://jitpack.io'
    }
}

checkstyle {
    toolVersion '8.21'
    configFile file("config/checkstyle/checkstyle.xml")
}

checkstyleMain {
    source ='src/main/java'
}

checkstyleTest {
    source ='src/test/java'
}

jacocoTestCoverageVerification {
    afterEvaluate {
        classDirectories = files(classDirectories.files.collect {
            fileTree(dir: it, exclude:  [
                    'org/hyperledger/fabric/samples/fabcar/Start.*'
            ])
        })
    }
    violationRules {
        rule {
            limit {
                minimum = 1.0
            }
        }
    }

    finalizedBy jacocoTestReport
}

test {
    useJUnitPlatform()
    testLogging {
        events "passed", "skipped", "failed"
    }
}

check.dependsOn jacocoTestCoverageVerification
