1 4 package org.oddjob.state; 5 6 import junit.framework.TestCase; 7 8 11 public class JobStateHandlerTest extends TestCase { 12 13 14 public void test1() { 15 JobStateHandler sh = new JobStateHandler(this); 16 17 assertEquals(JobState.READY, sh.getJobState()); 18 assertEquals(JobState.READY, sh.getLastEvent().getJobState()); 19 20 sh.requestJobStateExecuting(); 21 assertEquals(JobState.EXECUTING, sh.getJobState()); 22 assertEquals(JobState.EXECUTING, sh.getLastEvent().getJobState()); 23 24 sh.setJobStateComplete(); 25 assertEquals(JobState.COMPLETE, sh.getJobState()); 26 assertEquals(JobState.COMPLETE, sh.getLastEvent().getJobState()); 27 28 sh.setJobStateNotComplete(); 29 assertEquals(JobState.NOT_COMPLETE, sh.getJobState()); 30 assertEquals(JobState.NOT_COMPLETE, sh.getLastEvent().getJobState()); 31 32 sh.setJobStateException(new Exception ()); 33 assertEquals(JobState.EXCEPTION, sh.getJobState()); 34 assertEquals(JobState.EXCEPTION, sh.getLastEvent().getJobState()); 35 36 sh.setJobStateReady(); 37 assertEquals(JobState.READY, sh.getJobState()); 38 assertEquals(JobState.READY, sh.getLastEvent().getJobState()); 39 } 40 41 class L implements JobStateListener { 42 JobStateEvent e; 43 public void jobStateChange(JobStateEvent event) { 44 e = event; 45 } 46 } 47 48 public void test2() { 49 50 L l = new L(); 51 JobStateHandler sh = new JobStateHandler(this); 52 sh.addJobStateListener(l); 53 54 assertEquals(JobState.READY, l.e.getJobState()); 55 56 l.e = null; 57 boolean can = sh.requestJobStateExecuting(); 58 assertTrue(can); 59 assertEquals(JobState.EXECUTING, l.e.getJobState()); 60 61 l.e = null; 62 sh.setJobStateComplete(); 63 assertEquals(JobState.COMPLETE, l.e.getJobState()); 64 65 l.e = null; 66 sh.setJobStateNotComplete(); 67 assertEquals(JobState.NOT_COMPLETE, l.e.getJobState()); 68 69 l.e = null; 70 sh.setJobStateException(new Exception ()); 71 assertEquals(JobState.EXCEPTION, l.e.getJobState()); 72 73 l.e = null; 74 sh.setJobStateReady(); 75 assertEquals(JobState.READY, l.e.getJobState()); 76 } 77 78 public void testManyListeners() throws Exception { 79 80 L l1 = new L(); 81 L l2 = new L(); 82 L l3 = new L(); 83 84 final JobStateHandler sh = new JobStateHandler(this); 85 Thread t = new Thread (new Runnable () { 86 public void run() { 87 sh.setJobStateComplete(); 88 } 89 }); 90 t.start(); 91 92 sh.addJobStateListener(l1); 93 sh.addJobStateListener(l2); 94 sh.addJobStateListener(l3); 95 96 t.join(); 97 98 assertEquals(JobState.COMPLETE, l1.e.getJobState()); 99 assertEquals(JobState.COMPLETE, l2.e.getJobState()); 100 assertEquals(JobState.COMPLETE, l3.e.getJobState()); 101 } 102 } 103 | Popular Tags |