KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > state > JobStateHandlerTest


1 /*
2  * (c) Rob Gordon 2005
3  */

4 package org.oddjob.state;
5
6 import junit.framework.TestCase;
7
8 /**
9  *
10  */

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 JavaDoc());
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 JavaDoc());
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 JavaDoc {
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 JavaDoc t = new Thread JavaDoc(new Runnable JavaDoc() {
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