-{
- public class MockDialog implements DialogRunnerI
- {
- DialogRunnerI runner = new DialogRunner();
-
- @Override
- public DialogRunnerI addResponse(RunResponse action)
- {
- return runner.addResponse(action);
- }
-
- public void doDialog(String resp)
- {
- runner.handleResponse(resp);
- }
-
- @Override
- public void handleResponse(Object response) {
- // TODO Auto-generated method stub
-
- }
- }
-
- MockDialog dialog = new MockDialog();
-
- @Test
- public void testDialogRunner()
- {
- RunResponse ok, cancel, help, ineed;
- 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 = "DONE";
- }
- };
- final RunResponse befok = new RunResponse("OK")
- {
-
- @Override
- public void run()
- {
- returned = "OK";
- }
- };
-
- 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;
- }
- };
-
- Assert.assertFalse(dialog.runner.isRegistered(ok));
-
- dialog.addResponse(ok).addResponse(cancel).addResponse(help).addResponse(ineed);
-
- Assert.assertTrue(dialog.runner.isRegistered(ok));
-
- 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);
-
- // TODO: test prepend and chained execution of tasks for a response.
- Assert.assertFalse(dialog.runner.isRegistered(befok));
- dialog.runner.setFirstResponse(befok);
-
- Assert.assertTrue(dialog.runner.isRegistered(befok));
- Assert.assertTrue(dialog.runner.isRegistered(ok));
-
- dialog.runner.resetResponses();
-
- dialog.doDialog("OK");
- Assert.assertTrue(befok.wasRun);
- Assert.assertTrue(ok.wasRun);
- Assert.assertEquals(dialog.runner.responses.size(), 3);
- }
-}