package jalview.util.dialogrunner;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
public class DialogRunnerTest
-{
- public class MockDialog implements DialogRunnerI
- {
- DialogRunner<MockDialog> runner = new DialogRunner<>(this);
-
- @Override
- public MockDialog response(RunResponse action)
- {
- return runner.response(action);
- }
-
- public void doDialog(String resp)
- {
- runner.firstRun(resp);
- }
- }
-
- MockDialog dialog = new MockDialog();
-
- @Test
- 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");
-
- ok = new RunResponse("OK")
- {
-
- @Override
- public void run()
- {
- returned = new Response("DONE");
- }
- };
- cancel = new RunResponse("CANCEL")
- {
- @Override
- public void run()
- {
- returned = r_ddoit;
- }
- };
- help = new RunResponse("HELP")
- {
- @Override
- public void run()
- {
- returned = r_needsb;
-
- }
- };
- ineed = new RunResponse(r_needsb)
- {
- @Override
- public void run()
- {
- returned = ooh;
- }
- };
-
- dialog.response(ok).response(cancel).response(help).response(ineed);
-
- Assert.assertFalse(dialog.runner.firstRunWasCalled);
- 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);
-
- // do it again - check it doesn't trigger again
- ok.wasRun = false;
- dialog.doDialog("OK");
- Assert.assertFalse(ok.wasRun);
-
- // 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);
-
- // 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);
- }
-}
+{}