From ecc2e04ddb5c688b353ac8cd20c3925de1a7c8c9 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Sun, 3 Jan 2016 07:54:35 -0800 Subject: [PATCH] Tests for include/exclude. --- .../com/beust/kobalt/IncludeExcludeTest.kt | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/test/kotlin/com/beust/kobalt/IncludeExcludeTest.kt diff --git a/src/test/kotlin/com/beust/kobalt/IncludeExcludeTest.kt b/src/test/kotlin/com/beust/kobalt/IncludeExcludeTest.kt new file mode 100644 index 00000000..63fbff1a --- /dev/null +++ b/src/test/kotlin/com/beust/kobalt/IncludeExcludeTest.kt @@ -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> = arrayOf( + arrayOf(directory, arrayListOf("A**class", "B**class"), arrayListOf(), 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(), listOf(A1, B1, B2, C1, C2, C3)), + arrayOf(topDirectory, arrayListOf("*class"), arrayListOf(), listOf()), + arrayOf(topDirectory, arrayListOf("**/B*class"), arrayListOf(), 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, excludedSpec: ArrayList, + expectedFiles: List) { + val g = IFileSpec.GlobSpec(includedSpec) + val files = g.toFiles(root.path, excludedSpec.map { Glob(it) }) + Assert.assertEquals(files.map { it.name }, expectedFiles) + } +}