1 package jalview.util.dialogrunner;
3 import org.testng.Assert;
4 import org.testng.annotations.Test;
6 public class DialogRunnerTest
8 public class MockDialog implements DialogRunnerI
10 DialogRunner<MockDialog> runner = new DialogRunner<>(this);
13 public MockDialog response(RunResponse action)
15 return runner.response(action);
18 public void doDialog(String resp)
20 runner.firstRun(resp);
24 MockDialog dialog = new MockDialog();
27 public void testDialogRunner()
29 RunResponse ok, cancel, help, ineed;
30 final Response ooh = new Response("OOOOoooOOOOH!"),
31 r_ok = new Response("OK"), r_cancel = new Response("CANCEL"),
32 r_done = new Response("DONE"), r_help = new Response("HELP"),
33 r_ddoit = new Response("DIDNT DOIT"),
34 r_needsb = new Response("I NEED SOMEBODY");
36 ok = new RunResponse("OK")
42 returned = new Response("DONE");
45 cancel = new RunResponse("CANCEL")
53 help = new RunResponse("HELP")
62 ineed = new RunResponse(r_needsb)
71 dialog.response(ok).response(cancel).response(help).response(ineed);
73 Assert.assertFalse(dialog.runner.firstRunWasCalled);
74 dialog.doDialog("OK");
75 // OK called, nothing else.
76 Assert.assertTrue(dialog.runner.firstRunWasCalled);
77 Assert.assertTrue(ok.wasRun);
78 Assert.assertEquals(ok.returned, r_done);
79 Assert.assertFalse(cancel.wasRun);
80 Assert.assertEquals(dialog.runner.responses.size(), 2);
82 // do it again - check it doesn't trigger again
84 dialog.doDialog("OK");
85 Assert.assertFalse(ok.wasRun);
87 // reset - everything false/null
88 dialog.runner.resetResponses();
89 Assert.assertFalse(dialog.runner.firstRunWasCalled);
90 Assert.assertFalse(ok.wasRun);
91 Assert.assertNull(ok.returned);
92 Assert.assertEquals(dialog.runner.responses.size(), 0);
95 dialog.doDialog("HELP");
96 Assert.assertTrue(dialog.runner.firstRunWasCalled);
97 Assert.assertFalse(ok.wasRun);
98 Assert.assertEquals(ineed.returned, ooh);
99 Assert.assertEquals(dialog.runner.responses.size(), 3);