X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Futil%2Fdialogrunner%2FDialogRunnerTest.java;h=b89c4bfd0f35c08211c694e171f495b39b261acd;hb=bd7b3138379c2db8507fe7e8d25f5a921e2d9df7;hp=e69ae878acac372995879bafb6da6b1f4e09969d;hpb=be9359e9a28efb6aade9bdac054d76b4f9452c47;p=jalview.git diff --git a/test/jalview/util/dialogrunner/DialogRunnerTest.java b/test/jalview/util/dialogrunner/DialogRunnerTest.java index e69ae87..b89c4bf 100644 --- a/test/jalview/util/dialogrunner/DialogRunnerTest.java +++ b/test/jalview/util/dialogrunner/DialogRunnerTest.java @@ -1,24 +1,39 @@ package jalview.util.dialogrunner; -import org.testng.Assert; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertTrue; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + import org.testng.annotations.Test; +import junit.extensions.PA; + public class DialogRunnerTest { public class MockDialog implements DialogRunnerI { - DialogRunner runner = new DialogRunner<>(this); + DialogRunnerI runner = new DialogRunner(); @Override - public MockDialog response(RunResponse action) + public DialogRunnerI addResponse(Object response, RunResponse action) { - return runner.response(action); + return runner.addResponse(response, action); } - public void doDialog(String resp) + public List doDialog(String resp) { - runner.firstRun(resp); + return runner.handleResponse(resp); } + + @Override + public List handleResponse(Object response) + { + return null; + } } MockDialog dialog = new MockDialog(); @@ -27,28 +42,28 @@ public class DialogRunnerTest public void testDialogRunner() { RunResponse ok, cancel, help, ineed; - final Response ooh = new Response("OOOOoooOOOOH!"), - r_ok = new Response("OK"), r_cancel = new Response("CANCEL"), - r_done = new Response("DONE"), r_help = new Response("HELP"), - r_ddoit = new Response("DIDNT DOIT"), - r_needsb = new Response("I NEED SOMEBODY"); + final String ooh = "OOOOoooOOOOH!"; + final String r_ok = "OK"; + final String r_cancel = "CANCEL"; + final String r_done = "DONE"; + final String r_help = "HELP"; + final String r_ddoit = "DIDNT DOIT"; + final String r_needsb = "I NEED SOMEBODY"; ok = new RunResponse("OK") { - @Override public void run() { - returned = new Response("DONE"); + returnValue = "DONE"; } }; final RunResponse befok = new RunResponse("OK") { - @Override public void run() { - returned = new Response("OK"); + returnValue = "OK"; } }; @@ -57,7 +72,7 @@ public class DialogRunnerTest @Override public void run() { - returned = r_ddoit; + returnValue = r_ddoit; } }; help = new RunResponse("HELP") @@ -65,8 +80,7 @@ public class DialogRunnerTest @Override public void run() { - returned = r_needsb; - + returnValue = r_needsb; } }; ineed = new RunResponse(r_needsb) @@ -74,56 +88,64 @@ public class DialogRunnerTest @Override public void run() { - returned = ooh; + returnValue = ooh; } }; - Assert.assertFalse(dialog.runner.isRegistered(ok)); + assertFalse(isRegistered(dialog.runner, ok)); - dialog.response(ok).response(cancel).response(help).response(ineed); + dialog.addResponse("OK", ok).addResponse("CANCEL", cancel). + addResponse("HELP", help).addResponse(r_needsb, ineed); - Assert.assertTrue(dialog.runner.isRegistered(ok)); + assertTrue(isRegistered(dialog.runner, ok)); - Assert.assertFalse(dialog.runner.firstRunWasCalled); - dialog.doDialog("OK"); +// Assert.assertFalse(dialog.runner.firstRunWasCalled); + List actions = dialog.doDialog("OK"); // OK called, nothing else. - Assert.assertTrue(dialog.runner.firstRunWasCalled); - Assert.assertTrue(ok.wasRun); - Assert.assertEquals(ok.returned, r_done); - Assert.assertFalse(cancel.wasRun); - Assert.assertEquals(dialog.runner.responses.size(), 2); + // Assert.assertTrue(dialog.runner.firstRunWasCalled); + assertTrue(actions.contains(ok));//ok.wasRun); + assertEquals(ok.returnValue, r_done); + assertFalse(actions.contains(cancel));//cancel.wasRun); + assertEquals(actions/*dialog.runner.responses*/.size(), 2); // do it again - check it doesn't trigger again - ok.wasRun = false; - dialog.doDialog("OK"); - Assert.assertFalse(ok.wasRun); + //ok.wasRun = false; + actions = dialog.doDialog("OK"); + assertFalse(actions.contains(ok)); // reset - everything false/null - dialog.runner.resetResponses(); - Assert.assertFalse(dialog.runner.firstRunWasCalled); - Assert.assertFalse(ok.wasRun); - Assert.assertNull(ok.returned); - Assert.assertEquals(dialog.runner.responses.size(), 0); +// dialog.runner.resetResponses(); +// Assert.assertFalse(dialog.runner.firstRunWasCalled); +// Assert.assertFalse(ok.wasRun); +// Assert.assertNull(ok.returned); +// Assert.assertEquals(dialog.runner.responses.size(), 0); // cancel called .. - dialog.doDialog("HELP"); - Assert.assertTrue(dialog.runner.firstRunWasCalled); - Assert.assertFalse(ok.wasRun); - Assert.assertEquals(ineed.returned, ooh); - Assert.assertEquals(dialog.runner.responses.size(), 3); + actions = dialog.doDialog("HELP"); +// Assert.assertTrue(dialog.runner.firstRunWasCalled); + assertFalse(actions.contains(ok));//ok.wasRun); + assertEquals(ineed.returnValue, ooh); + assertEquals(actions/*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.assertFalse(dialog.runner.isRegistered(befok)); + dialog.runner.addResponse("OK", befok); //setFirstResponse(befok); - Assert.assertTrue(dialog.runner.isRegistered(befok)); - Assert.assertTrue(dialog.runner.isRegistered(ok)); + assertTrue(isRegistered(dialog.runner, befok)); + assertTrue(isRegistered(dialog.runner, ok)); - dialog.runner.resetResponses(); +// dialog.runner.resetResponses(); - dialog.doDialog("OK"); - Assert.assertTrue(befok.wasRun); - Assert.assertTrue(ok.wasRun); - Assert.assertEquals(dialog.runner.responses.size(), 3); + actions = dialog.doDialog("OK"); + assertTrue(actions.contains(befok));//befok.wasRun); + assertTrue(actions.contains(ok)); //ok.wasRun); + assertEquals(actions/*dialog.runner.responses*/.size(), 3); + } + + private boolean isRegistered(DialogRunnerI runner, RunResponse action) + { + Map> actions = (Map>) PA.getValue(runner, "callbacks"); + Collection registered = actions.get(action.getTrigger()); + return registered != null && registered.contains(action); } }