1   
2   package org.weda.property;
3   
4   import java.util.ArrayList;
5   import java.util.Arrays;
6   import java.util.List;
7   import org.weda.test.WedaTestCase;
8   import org.weda.property.impl.PosibleValueImpl;
9   import org.weda.property.impl.PropertyDescriptorImpl;
10  
11  public class PropertyDescriptorTest extends WedaTestCase {
12      
13      /** Creates a new instance of PropertyDescriptorTest */
14      public PropertyDescriptorTest(String name) throws Exception {
15          super(name);
16      }
17      
18      public void test_equals() throws Exception {
19          PropertyDescriptorImpl d1 = new PropertyDescriptorImpl();
20          PropertyDescriptorImpl d2 = new PropertyDescriptorImpl();
21          d2.setParent(d1);
22          PropertyDescriptorImpl d3 = new PropertyDescriptorImpl();
23          d3.setParent(d1);
24          //
25          assertEquals(d1, d2);
26          assertEquals(d1, d3);
27          assertEquals(d2, d3);
28      }
29      
30      public void test_parent() throws Exception {
31          PropertyDescriptorImpl d1 = new PropertyDescriptorImpl();
32          d1.init();
33          PropertyDescriptorImpl d2 = new PropertyDescriptorImpl();
34          d2.init();
35          
36          d2.setParent(d1);
37          //
38          d2.setName("name");
39          assertEquals("name", d2.getName());
40          d1.setName("parentName");
41          assertEquals("name", d2.getName());
42          d2.setName(null);
43          assertEquals("parentName", d2.getName());
44          
45          //
46          d1 = new PropertyDescriptorImpl();
47          d1.setObjectClass(TestObject.class);
48          d1.setPattern("parentPattern");
49          d1.init();
50          d2 = new PropertyDescriptorImpl();
51          d2.setObjectClass(TestObject.class);
52          d2.setPattern("pattern");
53          d2.setParent(d1);
54          d2.init();
55          assertEquals("pattern", d2.getPattern());
56          d2.setPattern(null);
57          assertEquals("parentPattern", d2.getPattern());
58      }
59      
60      public void test_hasDisplayName() {
61          PropertyDescriptorImpl d1 = new PropertyDescriptorImpl();
62          d1.setObjectClass(TestObject.class);
63          assertFalse(d1.hasDisplayName());
64          d1.setDisplayName("test");
65          assertTrue(d1.hasDisplayName());
66          PropertyDescriptorImpl d2 = new PropertyDescriptorImpl();
67          d2.setObjectClass(TestObject.class);
68          d1.setParent(d2);
69          assertTrue(d1.hasDisplayName());
70          d1.setDisplayName(null);
71          assertFalse(d1.hasDisplayName());
72          d2.setDisplayName("test");
73          assertTrue(d1.hasDisplayName());
74      }
75      
76      public void test_posibleValues() throws Exception {
77  //        PropertyDescriptorImpl desc = new PropertyDescriptorImpl();
78  //        desc.init();
79  //        assertFalse(desc.hasPosibleValues());
80  //        assertFalse(desc.isPosibleValuesAliased());
81  //        assertNull(desc.getPosibleValues());
82          //
83  //        desc = new PropertyDescriptorImpl();
84  //        List<PosibleValue> values = new ArrayList<PosibleValue>();
85  //        values.add(new PosibleValueImpl(1, desc));
86  //        values.add(new PosibleValueImpl(2, desc));
87  //        desc.setPosibleValuesConfig(values);
88  //        desc.setPosibleValuesAliased(false);
89  //        desc.init();
90  //        assertTrue(desc.hasPosibleValues());
91  //        assertFalse(desc.isPosibleValuesAliased());
92  //        assertNotNull(desc.getPosibleValues());
93  //        assertTrue(
94  //                Arrays.equals(values.toArray()
95  //                , desc.getPosibleValues().toArray()));
96  //        PosibleValue value = desc.getPosibleValueByValue(1);
97  //        assertNotNull(value);
98  //        assertEquals(1, value.getValue());
99          //
100 //        desc = new PropertyDescriptorImpl();
101 //        desc.setObjectClass(TestObject.class);
102 //        values = new ArrayList<PosibleValue>();
103 //        values.add(new PosibleValueImpl(1, "a1", desc));
104 //        values.add(new PosibleValueImpl(2, "a2", desc));
105 //        desc.setPosibleValuesConfig(values);
106 //        desc.setPosibleValuesAliased(true);
107 /*        desc.init();
108         assertTrue(desc.hasPosibleValues());
109         assertTrue(desc.isPosibleValuesAliased());
110         assertNotNull(desc.getPosibleValues());
111         assertTrue(
112                 Arrays.equals(values.toArray()
113                 , desc.getPosibleValues().toArray()));
114         value = desc.getPosibleValueByValue(2);
115         assertNotNull(value);
116         assertEquals(2, value.getValue());
117         assertEquals("a2", value.getAlias());
118         //
119         PropertyDescriptorImpl desc2 = new PropertyDescriptorImpl();
120         desc2.setParent(desc);
121         assertTrue(desc2.hasPosibleValues());
122         assertTrue(desc2.isPosibleValuesAliased());
123         assertNotNull(desc2.getPosibleValues());
124         assertTrue(
125                 Arrays.equals(values.toArray()
126                 , desc2.getPosibleValues().toArray()));
127         value = desc2.getPosibleValueByValue(2);
128         assertNotNull(value);
129         assertEquals(2, value.getValue());
130         assertEquals("a2", value.getAlias());
131         //
132         List<PosibleValue> values2 = new ArrayList<PosibleValue>();
133         values2.add(new PosibleValueImpl(4, desc2));
134         values2.add(new PosibleValueImpl(5, desc2));
135         desc2.setPosibleValuesConfig(values2);
136         desc2.setPosibleValuesAliased(false);
137         desc2.init();
138         assertTrue(desc2.hasPosibleValues());
139         assertFalse(desc2.isPosibleValuesAliased());
140         assertNotNull(desc2.getPosibleValues());
141         assertTrue(
142                 Arrays.equals(values2.toArray()
143                 , desc2.getPosibleValues().toArray()));
144         value = desc2.getPosibleValueByValue(4);
145         assertNotNull(value);
146         assertEquals(4, value.getValue());        
147  */
148     }
149     
150 }