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

    // External dependencies
    implementation("com.amazonaws:aws-java-sdk-kms:${aws_java_sdk_version}")
    implementation("com.azure:azure-identity:${azure_version}")
    implementation("com.azure:azure-security-keyvault-keys:${azure_security_keyvault_keys_version}")
    implementation("com.google.cloud:google-cloud-kms:${google_cloud_kms_version}")
    implementation("org.apache.commons:commons-lang3:${apache_commons_version}")
    implementation("com.fasterxml.jackson.core:jackson-databind:${jackson_core_version}")
    implementation("com.google.guava:guava:${guava_version}")
    implementation("com.nimbusds:oauth2-oidc-sdk:${nimbusds_version}")
    implementation("org.apache.httpcomponents.client5:httpclient5:${apache_httpclient5_version}")
    implementation("org.slf4j:slf4j-api:${slf4j_version}")
    implementation("jakarta.annotation:jakarta.annotation-api:${jakarta_annotation_api_version}")
    implementation("jakarta.validation:jakarta.validation-api:${jakarta_annotation_api_version}")

    // Test dependencies
    testImplementation("org.junit.jupiter:junit-jupiter-api:${junit_version}")
    testImplementation("org.junit.jupiter:junit-jupiter-params:${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()
}