Statistics
| Revision:

root / branches / v2_0_0_prep / libraries / libTools / src-test / org / gvsig / tools / dynobject / impl / DefaultDynClassTest.java @ 25451

History | View | Annotate | Download (5.27 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Gobernment (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22

    
23
/*
24
* AUTHORS (In addition to CIT):
25
* 2008 {DiSiD Technologies}  {{Task}}
26
*/
27
package org.gvsig.tools.dynobject.impl;
28

    
29
import junit.framework.TestCase;
30

    
31
import org.easymock.MockControl;
32
import org.gvsig.tools.dynobject.DynClass;
33
import org.gvsig.tools.dynobject.DynField;
34
import org.gvsig.tools.dynobject.DynObjectManager;
35

    
36
/**
37
 * Unit tests for the class {@link DefaultDynClass}.
38
 * 
39
 * @author <a href="mailto:cordin@disid.com">C?sar Ordi?ana</a>
40
 */
41
public class DefaultDynClassTest extends TestCase {
42
    
43
    private MockControl managerControl;
44
    private DynObjectManager manager;
45
    private DefaultDynClass dynClass;
46

    
47
    protected void setUp() throws Exception {
48
        super.setUp();
49
        managerControl = MockControl.createNiceControl(DynObjectManager.class);
50
        manager = (DynObjectManager) managerControl.getMock();
51
        dynClass = new DefaultDynClass(manager, "dynclass", "description");
52
    }
53

    
54
    /**
55
     * Test method for {@link org.gvsig.tools.dynobject.impl.DefaultDynClass#newInstance()}.
56
     */
57
    public void testNewInstance() {
58
        // TODO: solve
59
        // MockControl dynObjControl = MockControl
60
        // .createNiceControl(DynObject.class);
61
        // DynObject dynObj = (DynObject) dynObjControl.getMock();
62
        // dynObjControl.expectAndReturn(dynObj.getDynClass(), dynClass);
63
        // dynObjControl.replay();
64
        //
65
        // managerControl.expectAndReturn(manager.createDynObject(dynClass),
66
        // dynObj);
67
        // managerControl.replay();
68
        //
69
        // DynObject newDynObj = dynClass.newInstance();
70
        // assertTrue(dynClass.isInstance(newDynObj));
71
    }
72

    
73
    /**
74
     * Test method for {@link org.gvsig.tools.dynobject.impl.DefaultDynClass#extend(org.gvsig.tools.dynobject.DynClass)}.
75
     */
76
    public void testExtendDynClass() {
77
        final String parent = "parent";
78

    
79
        DefaultDynClass parentDynClass = new DefaultDynClass(manager, parent,
80
                "parent description");
81
        
82
        managerControl.expectAndReturn(manager.has(parent), true);
83
        managerControl.expectAndReturn(manager.get(parent), parentDynClass);
84
        managerControl.replay();
85
        
86
        dynClass.extend(parentDynClass);
87

    
88
        DynClass[] parents = dynClass.getSuperDynClasses();
89
        assertEquals(parentDynClass, parents[0]);
90
    }
91

    
92
    /**
93
     * Test method for {@link org.gvsig.tools.dynobject.impl.DefaultDynClass#extend(java.lang.String)}.
94
     */
95
    public void testExtendString() {
96
        final String parent = "parent";
97
        
98
        DefaultDynClass parentDynClass = new DefaultDynClass(manager, parent,
99
                "parent description");
100

    
101
        managerControl.expectAndReturn(manager.has(parent), true);
102
        managerControl.expectAndReturn(manager.get(parent), parentDynClass);
103
        managerControl.replay();
104

    
105

    
106
        dynClass.extend(parent);
107

    
108
        DynClass[] parents = dynClass.getSuperDynClasses();
109
        assertEquals(parentDynClass, parents[0]);
110
    }
111

    
112
    /**
113
     * Test method for
114
     * {@link org.gvsig.tools.dynobject.impl.DefaultDynClass#getDynField(java.lang.String)}
115
     * ,
116
     * {@link org.gvsig.tools.dynobject.impl.DefaultDynClass#addDynField(java.lang.String)}
117
     * ,
118
     * {@link org.gvsig.tools.dynobject.impl.DefaultDynClass#removeDynField(java.lang.String)}
119
     * , {@link org.gvsig.tools.dynobject.impl.DefaultDynClass#getDeclaredDynFields()}.
120
     */
121
    public void testDynFields() {
122
        final String field1 = "field1";
123
        final String field2 = "field2";
124
        
125
        DynField dynField1 = dynClass.addDynField(field1);
126
        assertEquals(dynField1, dynClass.getDynField(field1));
127

    
128
        DynField dynField2 = dynClass.addDynField(field2);
129
        assertEquals(dynField2, dynClass.getDynField(field2));
130

    
131
        DynField[] fields = dynClass.getDeclaredDynFields();
132
        assertEquals(2, fields.length);
133

    
134
        dynClass.removeDynField(field1);
135
        assertNull(dynClass.getDynField(field1));
136
    }
137
    
138
    
139
    /**
140
     * Test method for
141
     * {@link org.gvsig.tools.dynobject.impl.DefaultDynClass#equals(Object)}.
142
     */
143
    public void testEquals() {
144
        DefaultDynClass dynClass2 = new DefaultDynClass(manager, "dynclass2",
145
                "description2");
146
        DefaultDynClass dynClassB = new DefaultDynClass(manager, "dynclass",
147
                "description");
148

    
149
        assertTrue(dynClass.equals(dynClassB));
150
        assertFalse(dynClass.equals(dynClass2));
151
        assertFalse(dynClass.equals(null));
152
    }
153
}