Test for LibraryInfo dependencies
This commit is contained in:
@@ -156,7 +156,7 @@ private data class LibrarySourceInfo(val project: Project, val library: Library)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//TODO: (module refactoring) there should be separate SdkSourceInfo but there are no kotlin source in existing sdks for now :)
|
//TODO: (module refactoring) there should be separate SdkSourceInfo but there are no kotlin source in existing sdks for now :)
|
||||||
private data class SdkInfo(val project: Project, val sdk: Sdk) : IdeaModuleInfo() {
|
public data class SdkInfo(val project: Project, val sdk: Sdk) : IdeaModuleInfo() {
|
||||||
override val name: Name = Name.special("<library ${sdk.getName()}>")
|
override val name: Name = Name.special("<library ${sdk.getName()}>")
|
||||||
|
|
||||||
override fun contentScope() = SdkScope(project, sdk)
|
override fun contentScope() = SdkScope(project, sdk)
|
||||||
|
|||||||
@@ -220,6 +220,53 @@ class IdeaModuleInfoTest : ModuleTestCase() {
|
|||||||
f.production.assertDependentsEqual(f.production, f.test)
|
f.production.assertDependentsEqual(f.production, f.test)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun testLibraryDependency1() {
|
||||||
|
val lib1 = projectLibrary("lib1")
|
||||||
|
val lib2 = projectLibrary("lib2")
|
||||||
|
|
||||||
|
val module = module("module")
|
||||||
|
module.addDependency(lib1)
|
||||||
|
module.addDependency(lib2)
|
||||||
|
|
||||||
|
lib1.classes.assertAdditionalLibraryDependencies(lib2.classes)
|
||||||
|
lib2.classes.assertAdditionalLibraryDependencies(lib1.classes)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun testLibraryDependency2() {
|
||||||
|
val lib1 = projectLibrary("lib1")
|
||||||
|
val lib2 = projectLibrary("lib2")
|
||||||
|
val lib3 = projectLibrary("lib3")
|
||||||
|
|
||||||
|
val (a, b, c) = modules()
|
||||||
|
a.addDependency(lib1)
|
||||||
|
b.addDependency(lib2)
|
||||||
|
c.addDependency(lib3)
|
||||||
|
|
||||||
|
c.addDependency(a)
|
||||||
|
c.addDependency(b)
|
||||||
|
|
||||||
|
lib1.classes.assertAdditionalLibraryDependencies()
|
||||||
|
lib2.classes.assertAdditionalLibraryDependencies()
|
||||||
|
lib3.classes.assertAdditionalLibraryDependencies(lib1.classes, lib2.classes)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun testLibraryDependency3() {
|
||||||
|
val lib1 = projectLibrary("lib1")
|
||||||
|
val lib2 = projectLibrary("lib2")
|
||||||
|
val lib3 = projectLibrary("lib3")
|
||||||
|
|
||||||
|
val (a, b) = modules()
|
||||||
|
a.addDependency(lib1)
|
||||||
|
b.addDependency(lib2)
|
||||||
|
|
||||||
|
a.addDependency(lib3)
|
||||||
|
b.addDependency(lib3)
|
||||||
|
|
||||||
|
lib1.classes.assertAdditionalLibraryDependencies(lib3.classes)
|
||||||
|
lib2.classes.assertAdditionalLibraryDependencies(lib3.classes)
|
||||||
|
lib3.classes.assertAdditionalLibraryDependencies(lib1.classes, lib2.classes)
|
||||||
|
}
|
||||||
|
|
||||||
private fun Module.addDependency(
|
private fun Module.addDependency(
|
||||||
other: Module,
|
other: Module,
|
||||||
dependencyScope: DependencyScope = DependencyScope.COMPILE,
|
dependencyScope: DependencyScope = DependencyScope.COMPILE,
|
||||||
@@ -247,12 +294,18 @@ class IdeaModuleInfoTest : ModuleTestCase() {
|
|||||||
|
|
||||||
private fun modules(name1: String = "a", name2: String = "b", name3: String = "c") = Triple(module(name1), module(name2), module(name3))
|
private fun modules(name1: String = "a", name2: String = "b", name3: String = "c") = Triple(module(name1), module(name2), module(name3))
|
||||||
|
|
||||||
private fun IdeaModuleInfo.assertDependenciesEqual(vararg dependencies: IdeaModuleInfo) {
|
private fun IdeaModuleInfo.assertDependenciesEqual(vararg expected: IdeaModuleInfo) {
|
||||||
Assert.assertEquals(dependencies.toList(), this.dependencies())
|
Assert.assertEquals(expected.toList(), this.dependencies())
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun ModuleSourceInfo.assertDependentsEqual(vararg dependents: ModuleSourceInfo) {
|
private fun LibraryInfo.assertAdditionalLibraryDependencies(vararg expected: IdeaModuleInfo) {
|
||||||
UsefulTestCase.assertSameElements(this.getDependentModules(), dependents.toList())
|
Assert.assertEquals(this, dependencies().first())
|
||||||
|
val dependenciesWithoutSelf = this.dependencies().tail
|
||||||
|
UsefulTestCase.assertSameElements(dependenciesWithoutSelf, expected.toList())
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun ModuleSourceInfo.assertDependentsEqual(vararg expected: ModuleSourceInfo) {
|
||||||
|
UsefulTestCase.assertSameElements(this.getDependentModules(), expected.toList())
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun projectLibrary(name: String = "lib"): Library {
|
private fun projectLibrary(name: String = "lib"): Library {
|
||||||
|
|||||||
Reference in New Issue
Block a user