1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 08:27:12 -07:00

Tests for include/exclude.

This commit is contained in:
Cedric Beust 2016-01-03 07:54:35 -08:00
parent 62ab37f366
commit ecc2e04ddb

View file

@ -0,0 +1,53 @@
package com.beust.kobalt
import org.testng.Assert
import org.testng.annotations.BeforeClass
import org.testng.annotations.DataProvider
import org.testng.annotations.Test
import java.io.File
import java.nio.file.Files
import java.util.*
class IncludeExcludeTest : KobaltTest() {
private lateinit var topDirectory: File
private lateinit var directory: File
val A1 = "A1.class"
val B1 = "B1.class"
val B2 = "B2.class"
val C1 = "C1.class"
val C2 = "C2.class"
val C3 = "C3.class"
@BeforeClass
fun bc() {
topDirectory = Files.createTempDirectory("kobaltTest-").toFile()
directory = File(topDirectory, "com/beust")
directory.mkdirs()
listOf(A1, B1, B2, C1, C2, C3).forEach {
File(directory, it).createNewFile()
}
}
@DataProvider
fun dp() : Array<Array<out Any?>> = arrayOf(
arrayOf(directory, arrayListOf("A**class", "B**class"), arrayListOf<String>(), listOf(A1, B1, B2)),
arrayOf(directory, arrayListOf("A**class", "B**class"), arrayListOf("B*class"), listOf(A1)),
arrayOf(directory, arrayListOf("*class"), arrayListOf("B*class"), listOf(A1, C1, C2, C3)),
arrayOf(topDirectory, arrayListOf("**/*class"), arrayListOf<String>(), listOf(A1, B1, B2, C1, C2, C3)),
arrayOf(topDirectory, arrayListOf("*class"), arrayListOf<String>(), listOf<String>()),
arrayOf(topDirectory, arrayListOf("**/B*class"), arrayListOf<String>(), listOf(B1, B2)),
arrayOf(topDirectory, arrayListOf("**/A*class", "**/B*class"), arrayListOf("B*class"),
listOf(A1, B1, B2)),
arrayOf(topDirectory, arrayListOf("**/A*class", "**/B*class"), arrayListOf("**/B*class"),
listOf(A1))
)
@Test(dataProvider = "dp")
fun shouldInclude(root: File, includedSpec: ArrayList<String>, excludedSpec: ArrayList<String>,
expectedFiles: List<String>) {
val g = IFileSpec.GlobSpec(includedSpec)
val files = g.toFiles(root.path, excludedSpec.map { Glob(it) })
Assert.assertEquals(files.map { it.name }, expectedFiles)
}
}