JAL-3048 allow a chain of responses for a particular response code (needed when inter...
[jalview.git] / test / jalview / util / dialogrunner / DialogRunnerTest.java
index e956124..e69ae87 100644 (file)
@@ -42,6 +42,16 @@ public class DialogRunnerTest
         returned = new Response("DONE");
       }
     };
+    final RunResponse befok = new RunResponse("OK")
+    {
+
+      @Override
+      public void run()
+      {
+        returned = new Response("OK");
+      }
+    };
+
     cancel = new RunResponse("CANCEL")
     {
       @Override
@@ -68,8 +78,12 @@ public class DialogRunnerTest
       }
     };
 
+    Assert.assertFalse(dialog.runner.isRegistered(ok));
+
     dialog.response(ok).response(cancel).response(help).response(ineed);
 
+    Assert.assertTrue(dialog.runner.isRegistered(ok));
+
     Assert.assertFalse(dialog.runner.firstRunWasCalled);
     dialog.doDialog("OK");
     // OK called, nothing else.
@@ -97,5 +111,19 @@ public class DialogRunnerTest
     Assert.assertFalse(ok.wasRun);
     Assert.assertEquals(ineed.returned, ooh);
     Assert.assertEquals(dialog.runner.responses.size(), 3);
+
+    // TODO: test prepend and chained execution of tasks for a response.
+    Assert.assertFalse(dialog.runner.isRegistered(befok));
+    dialog.runner.firstResponse(befok);
+
+    Assert.assertTrue(dialog.runner.isRegistered(befok));
+    Assert.assertTrue(dialog.runner.isRegistered(ok));
+
+    dialog.runner.resetResponses();
+
+    dialog.doDialog("OK");
+    Assert.assertTrue(befok.wasRun);
+    Assert.assertTrue(ok.wasRun);
+    Assert.assertEquals(dialog.runner.responses.size(), 3);
   }
 }