01: /**
02: *
03: */package clime.messadmin.utils;
04:
05: import java.util.ArrayList;
06: import java.util.Collection;
07: import java.util.Iterator;
08:
09: import junit.framework.TestCase;
10: import clime.messadmin.providers.ProviderUtils;
11: import clime.messadmin.providers.spi.SerializableProvider;
12:
13: /**
14: * @author Cédrik LIME
15: */
16: public class SerializableUtilsTest extends TestCase {
17: private static final SerializableProvider provider;
18: private static final Collection serializables = new ArrayList();
19: private static final Collection nonSerializables = new ArrayList();
20:
21: static {
22: provider = (SerializableProvider) ProviderUtils.getProviders(
23: SerializableProvider.class).get(0);
24: System.out.println("Using provider " + provider.getClass());
25: }
26:
27: public static void main(String[] args) {
28: junit.textui.TestRunner.run(SerializableUtilsTest.class);
29: }
30:
31: /**
32: * Constructor for SerializableUtilsTest.
33: * @param name
34: */
35: public SerializableUtilsTest(String name) {
36: super (name);
37: }
38:
39: /**
40: * {@inheritDoc}
41: */
42: protected void setUp() throws Exception {
43: super .setUp();
44: serializables.add(null);
45: serializables.add(new ArrayList());
46: serializables.add(new Long(2));
47: serializables.add(new RuntimeException("test exception"));
48: serializables.add("foobar");
49: serializables.add(new int[] { 1, 2, 3 });
50: serializables.add(new Long[] { new Long(1), new Long(2) });
51: serializables.add(new Object[] {});
52: serializables.add(serializables); // I mean it!
53:
54: nonSerializables.add(new Object());
55: nonSerializables.add(new ThreadLocal());
56: nonSerializables.add(new Object[] { new Object() });
57: Collection coll = new ArrayList(1);
58: coll.add(new Object());
59: nonSerializables.add(coll);
60: nonSerializables.add(nonSerializables); // I mean it!
61: }
62:
63: /**
64: * {@inheritDoc}
65: */
66: protected void tearDown() throws Exception {
67: serializables.clear();
68: nonSerializables.clear();
69: super .tearDown();
70: }
71:
72: /*
73: * Test method for 'clime.messadmin.utils.SerializableUtils.isSerializable(Object)'
74: */
75: public void testIsSerializableObject() {
76: for (Iterator iter = serializables.iterator(); iter.hasNext();) {
77: Object obj = iter.next();
78: assertTrue(provider.isSerializable(obj));
79: }
80: }
81:
82: /*
83: * Test method for 'clime.messadmin.utils.SerializableUtils.isSerializable(Object)'
84: */
85: public void testIsNotSerializableObject() {
86: for (Iterator iter = nonSerializables.iterator(); iter
87: .hasNext();) {
88: Object obj = iter.next();
89: assertFalse(provider.isSerializable(obj));
90: }
91: }
92: }
|