From d029e654b0ba39680e574b6b11eb18f2e6bc6034 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Thu, 21 Jul 2016 22:17:34 -0800 Subject: [PATCH] Tests to make sure COMPILE scoped dependencies are resolved properly. --- .../kobalt/maven/DependencyManagerTest.kt | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/test/kotlin/com/beust/kobalt/maven/DependencyManagerTest.kt diff --git a/src/test/kotlin/com/beust/kobalt/maven/DependencyManagerTest.kt b/src/test/kotlin/com/beust/kobalt/maven/DependencyManagerTest.kt new file mode 100644 index 00000000..37535c0c --- /dev/null +++ b/src/test/kotlin/com/beust/kobalt/maven/DependencyManagerTest.kt @@ -0,0 +1,38 @@ +package com.beust.kobalt.maven + +import com.beust.kobalt.TestModule +import com.beust.kobalt.api.IClasspathDependency +import com.google.inject.Inject +import org.assertj.core.api.Assertions.assertThat +import org.testng.annotations.Guice +import org.testng.annotations.Test + +@Guice(modules = arrayOf(TestModule::class)) +class DependencyManagerTest @Inject constructor(val dependencyManager: DependencyManager) { + + @Test(description = "Make sure that COMPILE scope dependencies get resolved properly") + fun testScopeDependenciesShouldBeDownloaded() { + val testDeps = listOf(dependencyManager.create("org.testng:testng:6.9.11")) + + fun assertContains(dependencies: List, vararg ids: String) { + ids.forEach { id -> + assertThat(dependencies.any { it.id.contains(id) }).isTrue() + } + } + + // Should only resolve to TestNG + dependencyManager.transitiveClosure(testDeps, isTest = false).let { dependencies -> + assertThat(dependencies.any { it.id.contains(":jcommander:") }).isFalse() + assertContains(dependencies, ":testng:") + } + + // Should resolve to TestNG and its dependencies + dependencyManager.transitiveClosure(testDeps, isTest = true).let { dependencies -> + assertContains(dependencies, ":jcommander:") + assertContains(dependencies, ":bsh:") + assertContains(dependencies, ":ant:") + } + + } + +}