diff --git a/unit/java/azkaban/test/executor/FlowRunnerTest.java b/unit/java/azkaban/test/executor/FlowRunnerTest.java
index 7bdc413..a9e3620 100644
--- a/unit/java/azkaban/test/executor/FlowRunnerTest.java
+++ b/unit/java/azkaban/test/executor/FlowRunnerTest.java
@@ -86,6 +86,49 @@ public class FlowRunnerTest {
}
@Test
+ public void exec1Disabled() throws Exception {
+ File testDir = new File("unit/executions/exectest1");
+ ExecutableFlow exFlow = prepareExecDir(testDir, "exec1");
+
+ // Disable couple in the middle and at the end.
+ exFlow.getExecutableNode("job1").setStatus(Status.DISABLED);
+ exFlow.getExecutableNode("job6").setStatus(Status.DISABLED);
+ exFlow.getExecutableNode("job5").setStatus(Status.DISABLED);
+ exFlow.getExecutableNode("job10").setStatus(Status.DISABLED);
+
+ EventCollectorListener eventCollector = new EventCollectorListener();
+ FlowRunner runner = new FlowRunner(exFlow);
+ runner.addListener(eventCollector);
+
+ Assert.assertTrue(!runner.isCancelled());
+ Assert.assertTrue(exFlow.getStatus() == Status.READY);
+ runner.run();
+ Assert.assertTrue(exFlow.getStatus() == Status.SUCCEEDED);
+ Assert.assertTrue(runner.getJobsFinished().size() == exFlow.getExecutableNodes().size());
+ compareFinishedRuntime(runner);
+
+ testStatus(exFlow, "job1", Status.SKIPPED);
+ testStatus(exFlow, "job2", Status.SUCCEEDED);
+ testStatus(exFlow, "job3", Status.SUCCEEDED);
+ testStatus(exFlow, "job4", Status.SUCCEEDED);
+ testStatus(exFlow, "job5", Status.SKIPPED);
+ testStatus(exFlow, "job6", Status.SKIPPED);
+ testStatus(exFlow, "job7", Status.SUCCEEDED);
+ testStatus(exFlow, "job8", Status.SUCCEEDED);
+ testStatus(exFlow, "job9", Status.SUCCEEDED);
+ testStatus(exFlow, "job10", Status.SKIPPED);
+
+ try {
+ eventCollector.checkEventExists(new Type[] {Type.FLOW_STARTED, Type.FLOW_FINISHED});
+ }
+ catch (Exception e) {
+ System.out.println(e.getMessage());
+
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
public void exec1Failed() throws Exception {
File testDir = new File("unit/executions/exectest1");
ExecutableFlow exFlow = prepareExecDir(testDir, "exec2");