1
2
3
4
5
6
7 package org.weda.enhance;
8
9 import java.util.ArrayList;
10 import org.apache.hivemind.service.ClassFactory;
11 import org.weda.test.WedaTestCase;
12 import org.weda.enhance.impl.ObjectEnhancerImpl;
13 import org.weda.property.ObjectDescriptorRegistry;
14 import org.weda.property.PropertyValue;
15
16 /**
17 *
18 * @author Mikhail Titov
19 */
20 public class ObjectEnhancerTest extends WedaTestCase {
21
22 public ObjectEnhancerTest(String name) throws Exception {
23 super(name);
24 }
25
26 public void test_service() throws Exception {
27 ObjectEnhancer en =
28 (ObjectEnhancer)registry.getService(ObjectEnhancer.class);
29 assertNotNull(en);
30 Class clazz = en.enhanceClass(this.getClass());
31 assertEquals(this.getClass(), clazz);
32
33 clazz = en.enhanceClass(ObjectForEnhance.class);
34 assertNotNull(clazz);
35 assertFalse(ObjectForEnhance.class.equals(clazz));
36 ObjectForEnhance obj = (ObjectForEnhance)en.newInstance(clazz);
37 checkEnhancedObject(obj);
38
39 obj = (ObjectForEnhance)clazz.newInstance();
40 en.initObject(obj);
41 checkEnhancedObject(obj);
42 }
43
44 public void test_INSTANCE() {
45 assertNotNull(ObjectEnhancerImpl.INSTANCE);
46 }
47
48 private void checkEnhancedObject(ObjectForEnhance obj) throws Exception {
49 assertNotNull(obj);
50 assertEquals("test", obj.test());
51 assertNotNull(obj.getRegistry());
52 assertSame(
53 registry.getService(ObjectDescriptorRegistry.class)
54 , obj.getRegistry());
55 assertSame(
56 registry.getService(PropertyValue.class)
57 , obj.getPropertyValue());
58 assertNotNull(obj.getClassFactory());
59 assertSame(
60 registry.getService(ClassFactory.class), obj.getClassFactory());
61
62 ArrayList list1, list2;
63 list1 = obj.getCachedObject();
64 list2 = obj.getCachedObject();
65 assertSame(list1, list2);
66
67 list1 = obj.getNotCachedObject();
68 list2 = obj.getNotCachedObject();
69 assertNotSame(list1, list2);
70 }
71
72
73 }