KickJava   Java API By Example, From Geeks To Geeks.

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


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

4 package org.oddjob.state;
5
6 import java.io.ByteArrayInputStream JavaDoc;
7 import java.io.ByteArrayOutputStream JavaDoc;
8 import java.io.IOException JavaDoc;
9 import java.io.ObjectInput JavaDoc;
10 import java.io.ObjectInputStream JavaDoc;
11 import java.io.ObjectOutput JavaDoc;
12 import java.io.ObjectOutputStream JavaDoc;
13 import java.util.Date JavaDoc;
14
15 import junit.framework.TestCase;
16
17 import org.apache.log4j.Logger;
18 import org.oddjob.OddjobException;
19
20 /**
21  *
22  */

23 public class JobStateEventTest extends TestCase {
24     private static final Logger logger = Logger.getLogger(JobStateEvent.class);
25
26     String JavaDoc message = "This should serialize.";
27     
28     class NotSerializable {
29         
30     }
31     
32     class NotSerializableException extends Exception JavaDoc {
33         public NotSerializableException() {
34             super(message);
35         }
36         NotSerializable ns = new NotSerializable();
37     }
38     
39     public void testSerialize1() throws IOException JavaDoc, ClassNotFoundException JavaDoc {
40         Object JavaDoc source = new Object JavaDoc();
41         JobStateEvent event = new JobStateEvent(source,
42                 JobState.EXCEPTION, new Date JavaDoc(1234), new OddjobException(message));
43
44         JobStateEvent event2 = (JobStateEvent) outAndBack(event);
45         logger.debug(event2);
46         // source is transient in eventObject.
47
assertNull(event2.getSource());
48         assertEquals(JobState.EXCEPTION, event2.getJobState());
49         assertEquals(1234, event2.getTime().getTime());
50         assertEquals(message, event2.getException().getMessage());
51     }
52     
53     public void testSerialize2() throws IOException JavaDoc, ClassNotFoundException JavaDoc {
54         Object JavaDoc source = new Object JavaDoc();
55         JobStateEvent event = new JobStateEvent(source,
56                 JobState.EXCEPTION, new Date JavaDoc(1234), new NotSerializableException());
57
58         JobStateEvent event2 = (JobStateEvent) outAndBack(event);
59         logger.debug(event2);
60         logger.debug("Exception:", event2.getException());
61         // source is transient in eventObject.
62
assertNull(event2.getSource());
63         assertEquals(JobState.EXCEPTION, event2.getJobState());
64         assertEquals(1234, event2.getTime().getTime());
65         assertEquals(JobStateEvent.REPLACEMENT_EXCEPTION_TEXT + message, event2.getException().getMessage());
66     }
67     
68     public void testSerializeComplete() throws IOException JavaDoc, ClassNotFoundException JavaDoc {
69         Object JavaDoc source = new Object JavaDoc();
70         JobStateEvent event = new JobStateEvent(source,
71                 JobState.COMPLETE, new Date JavaDoc(1234), null);
72
73         JobStateEvent event2 = (JobStateEvent) outAndBack(event);
74         logger.debug(event2);
75         // source is transient in eventObject.
76
assertNull(event2.getSource());
77         assertEquals(JobState.COMPLETE, event2.getJobState());
78         assertEquals(1234, event2.getTime().getTime());
79         assertEquals(null, event2.getException());
80     }
81     
82     
83     Object JavaDoc outAndBack(Object JavaDoc object) throws IOException JavaDoc, ClassNotFoundException JavaDoc {
84         
85         ByteArrayOutputStream JavaDoc os = new ByteArrayOutputStream JavaDoc();
86         ObjectOutput JavaDoc oo = new ObjectOutputStream JavaDoc(os);
87         oo.writeObject(object);
88         oo.close();
89
90         ByteArrayInputStream JavaDoc in = new ByteArrayInputStream JavaDoc(os.toByteArray());
91         ObjectInput JavaDoc oi = new ObjectInputStream JavaDoc(in);
92         
93         Object JavaDoc o = oi.readObject();
94         return o;
95     }
96 }
97
Popular Tags