/*
 * Copyright 2018 ConsenSys AG.
 *
 * Licensed 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: 'java-library'

jar {
  baseName 'pantheon-trie'
  manifest {
    attributes(
      'Specification-Title': baseName,
      'Specification-Version': project.version,
      'Implementation-Title': baseName,
      'Implementation-Version': calculateVersion()
      )
  }
}

dependencies {
  implementation project(':crypto')
  implementation project(':ethereum:rlp')
  implementation project(':services:kvstore')

  implementation 'com.google.guava:guava'
  implementation 'org.bouncycastle:bcprov-jdk15on'

  testImplementation project(path: ':ethereum:referencetests', configuration: 'testOutput')
  testImplementation project(':testutil')

  testImplementation 'com.fasterxml.jackson.core:jackson-databind'
  testImplementation 'junit:junit'
  testImplementation 'org.assertj:assertj-core'
  testImplementation 'org.mockito:mockito-core'
}

test { exclude 'tech/pegasys/pantheon/ethereum/trie/TrieRefTest.class' }

task referenceTests(type: Test, dependsOn: ['compileTestJava']) {
  doFirst {
    if (!file("../referencetests/src/test/resources/README.md").exists()) {
      throw new GradleException("ethereum/referencetests/src/test/resources/README.md missing: please clone submodules (git submodule update --init --recursive)")
    }
  }
  include 'tech/pegasys/pantheon/ethereum/trie/TrieRefTest.class'
}
