dependencies {
    // Project dependencies (internal modules)
    implementation project(':config')

    // External dependencies
    implementation("com.amazonaws:aws-java-sdk-core:${aws_java_sdk_version}")
    implementation("com.amazonaws:aws-java-sdk-sts:${aws_java_sdk_version}")
    implementation("com.azure:azure-identity:${azure_version}")
    implementation("com.fasterxml.jackson.core:jackson-databind:${jackson_core_version}")
    implementation("com.google.auth:google-auth-library-oauth2-http:${google_auth_version}")
    implementation("com.google.cloud:google-cloud-iamcredentials:${google_cloud_version}")
    implementation("com.google.protobuf:protobuf-java:${google_protobuf_version}")
    implementation("org.apache.commons:commons-lang3:${apache_commons_version}")
    implementation("org.apache.jclouds.api:filesystem:${apache_jclouds_version}")
    implementation("org.apache.jclouds:jclouds-allblobstore:${apache_jclouds_version}")
    implementation("org.redisson:redisson:${redisson_version}")
    implementation("org.slf4j:slf4j-api:${slf4j_version}")

    // Test dependencies
    testImplementation("com.github.codemonstur:embedded-redis:${github_codemonstur_embedded_redis}") {
        exclude group: 'org.slf4j', module: 'slf4j-simple'
    }
    testImplementation("org.junit.jupiter:junit-jupiter:${junit_version}")
    testImplementation("org.mockito:mockito-core:${mockito_version}")
    testImplementation("org.mockito:mockito-junit-jupiter:${mockito_version}")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junit_version}")
}

test {
    testLogging {
        events "passed", "skipped", "failed", "standardOut", "standardError"
        exceptionFormat = "full"
    }
    useJUnitPlatform()
}
