group 'com.example.espresso'
version '1.0'

buildscript {
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.1'
    }
}

rootProject.allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

apply plugin: 'com.android.library'

android {
    compileSdkVersion 31

    defaultConfig {
        minSdkVersion 16
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    lintOptions {
        // TODO(stuartmorgan): Enable when gradle is updated.
        // disable 'AndroidGradlePluginVersion'
        disable 'InvalidPackage'
        disable 'GradleDependency'
        baseline file("lint-baseline.xml")
    }


    testOptions {
        unitTests.includeAndroidResources = true
        unitTests.returnDefaultValues = true
        unitTests.all {
            testLogging {
               events "passed", "skipped", "failed", "standardOut", "standardError"
               outputs.upToDateWhen {false}
               showStandardStreams = true
            }
        }
    }
}

dependencies {
    implementation 'com.google.guava:guava:31.1-android'
    implementation 'com.squareup.okhttp3:okhttp:4.10.0'
    implementation 'com.google.code.gson:gson:2.10.1'
    androidTestImplementation 'org.hamcrest:hamcrest:2.2'

    testImplementation 'junit:junit:4.13.2'
    testImplementation "com.google.truth:truth:1.0"
    api 'androidx.test:runner:1.1.1'
    api 'androidx.test.espresso:espresso-core:3.1.1'

    // Core library
    api 'androidx.test:core:1.0.0'

    // AndroidJUnitRunner and JUnit Rules
    api 'androidx.test:runner:1.1.0'
    api 'androidx.test:rules:1.1.0'

    // Assertions
    api 'androidx.test.ext:junit:1.1.3'
    api 'androidx.test.ext:truth:1.5.0'
    api 'com.google.truth:truth:0.42'

    // Espresso dependencies
    api 'androidx.test.espresso:espresso-core:3.1.0'
    api 'androidx.test.espresso:espresso-contrib:3.1.0'
    api 'androidx.test.espresso:espresso-intents:3.1.0'
    api 'androidx.test.espresso:espresso-accessibility:3.5.1'
    api 'androidx.test.espresso:espresso-web:3.1.0'
    api 'androidx.test.espresso.idling:idling-concurrent:3.1.0'

    // The following Espresso dependency can be either "implementation"
    // or "androidTestImplementation", depending on whether you want the
    // dependency to appear on your APK's compile classpath or the test APK
    // classpath.
    api 'androidx.test.espresso:espresso-idling-resource:3.5.1'
}


