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 final RunResponse befok = new RunResponse("OK")
51 returned = new Response("OK");
55 cancel = new RunResponse("CANCEL")
63 help = new RunResponse("HELP")
72 ineed = new RunResponse(r_needsb)
81 Assert.assertFalse(dialog.runner.isRegistered(ok));
83 dialog.response(ok).response(cancel).response(help).response(ineed);
85 Assert.assertTrue(dialog.runner.isRegistered(ok));
87 Assert.assertFalse(dialog.runner.firstRunWasCalled);
88 dialog.doDialog("OK");
89 // OK called, nothing else.
90 Assert.assertTrue(dialog.runner.firstRunWasCalled);
91 Assert.assertTrue(ok.wasRun);
92 Assert.assertEquals(ok.returned, r_done);
93 Assert.assertFalse(cancel.wasRun);
94 Assert.assertEquals(dialog.runner.responses.size(), 2);
96 // do it again - check it doesn't trigger again
98 dialog.doDialog("OK");
99 Assert.assertFalse(ok.wasRun);
101 // reset - everything false/null
102 dialog.runner.resetResponses();
103 Assert.assertFalse(dialog.runner.firstRunWasCalled);
104 Assert.assertFalse(ok.wasRun);
105 Assert.assertNull(ok.returned);
106 Assert.assertEquals(dialog.runner.responses.size(), 0);
109 dialog.doDialog("HELP");
110 Assert.assertTrue(dialog.runner.firstRunWasCalled);
111 Assert.assertFalse(ok.wasRun);
112 Assert.assertEquals(ineed.returned, ooh);
113 Assert.assertEquals(dialog.runner.responses.size(), 3);
115 // TODO: test prepend and chained execution of tasks for a response.
116 Assert.assertFalse(dialog.runner.isRegistered(befok));
117 dialog.runner.firstResponse(befok);
119 Assert.assertTrue(dialog.runner.isRegistered(befok));
120 Assert.assertTrue(dialog.runner.isRegistered(ok));
122 dialog.runner.resetResponses();
124 dialog.doDialog("OK");
125 Assert.assertTrue(befok.wasRun);
126 Assert.assertTrue(ok.wasRun);
127 Assert.assertEquals(dialog.runner.responses.size(), 3);