From 1ffb03f660beb81c6bb65bd3184176a88b72ca23 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Tue, 12 Apr 2016 23:45:17 -0700 Subject: [PATCH] TaskManagerTest. --- .../beust/kobalt/internal/TaskManagerTest.kt | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt diff --git a/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt b/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt new file mode 100644 index 00000000..ce304e3c --- /dev/null +++ b/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt @@ -0,0 +1,49 @@ +package com.beust.kobalt.internal + +import com.beust.kobalt.TestModule +import com.google.common.collect.TreeMultimap +import com.google.inject.Inject +import org.testng.Assert +import org.testng.annotations.Guice +import org.testng.annotations.Test + +@Guice(modules = arrayOf(TestModule::class)) +class TaskManagerTest @Inject constructor(val taskManager: TaskManager) { + + class DryRunGraphExecutor(val graph: DynamicGraph) { + fun run() : List { + val result = arrayListOf() + while (graph.freeNodes.size > 0) { + graph.freeNodes.forEach { + result.add(it) + graph.setStatus(it, DynamicGraph.Status.FINISHED) + } + } + return result + } + } + + private fun runTasks(tasks: List) : List { + val runBefore = TreeMultimap.create().apply { + put("assemble", "compile") + put("compile", "clean") + } + val alwaysRunAfter = TreeMultimap.create() + val dependencies = TreeMultimap.create().apply { + listOf("assemble", "compile", "clean").forEach { + put(it, it) + } + } + val graph = taskManager.createGraph("", tasks, dependencies, runBefore, alwaysRunAfter, + { it }, { t -> true }) + val result = DryRunGraphExecutor(graph).run() + return result + } + + @Test + fun graphTest() { + Assert.assertEquals(runTasks(listOf("assemble")), listOf("compile", "assemble")) + Assert.assertEquals(runTasks(listOf("clean", "assemble")), listOf("clean", "compile", "assemble")) + } +} +