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 DialogRunnerI runner = new DialogRunner();
13 public DialogRunnerI addResponse(RunResponse action)
15 return runner.addResponse(action);
18 public void doDialog(String resp)
20 runner.handleResponse(resp);
24 public void handleResponse(Object response) {
25 // TODO Auto-generated method stub
30 MockDialog dialog = new MockDialog();
33 public void testDialogRunner()
35 RunResponse ok, cancel, help, ineed;
36 final String ooh = "OOOOoooOOOOH!";
37 final String r_ok = "OK";
38 final String r_cancel = "CANCEL";
39 final String r_done = "DONE";
40 final String r_help = "HELP";
41 final String r_ddoit = "DIDNT DOIT";
42 final String r_needsb = "I NEED SOMEBODY";
44 ok = new RunResponse("OK")
53 final RunResponse befok = new RunResponse("OK")
63 cancel = new RunResponse("CANCEL")
71 help = new RunResponse("HELP")
80 ineed = new RunResponse(r_needsb)
89 Assert.assertFalse(dialog.runner.isRegistered(ok));
91 dialog.addResponse(ok).addResponse(cancel).addResponse(help).addResponse(ineed);
93 Assert.assertTrue(dialog.runner.isRegistered(ok));
95 Assert.assertFalse(dialog.runner.firstRunWasCalled);
96 dialog.doDialog("OK");
97 // OK called, nothing else.
98 Assert.assertTrue(dialog.runner.firstRunWasCalled);
99 Assert.assertTrue(ok.wasRun);
100 Assert.assertEquals(ok.returned, r_done);
101 Assert.assertFalse(cancel.wasRun);
102 Assert.assertEquals(dialog.runner.responses.size(), 2);
104 // do it again - check it doesn't trigger again
106 dialog.doDialog("OK");
107 Assert.assertFalse(ok.wasRun);
109 // reset - everything false/null
110 dialog.runner.resetResponses();
111 Assert.assertFalse(dialog.runner.firstRunWasCalled);
112 Assert.assertFalse(ok.wasRun);
113 Assert.assertNull(ok.returned);
114 Assert.assertEquals(dialog.runner.responses.size(), 0);
117 dialog.doDialog("HELP");
118 Assert.assertTrue(dialog.runner.firstRunWasCalled);
119 Assert.assertFalse(ok.wasRun);
120 Assert.assertEquals(ineed.returned, ooh);
121 Assert.assertEquals(dialog.runner.responses.size(), 3);
123 // TODO: test prepend and chained execution of tasks for a response.
124 Assert.assertFalse(dialog.runner.isRegistered(befok));
125 dialog.runner.setFirstResponse(befok);
127 Assert.assertTrue(dialog.runner.isRegistered(befok));
128 Assert.assertTrue(dialog.runner.isRegistered(ok));
130 dialog.runner.resetResponses();
132 dialog.doDialog("OK");
133 Assert.assertTrue(befok.wasRun);
134 Assert.assertTrue(ok.wasRun);
135 Assert.assertEquals(dialog.runner.responses.size(), 3);