Statistics
| Revision:

root / branches / v2_0_0_prep / libraries / libTools / src-test / org / gvsig / tools / extensionpoint / TestExtensionPoints.java @ 31544

History | View | Annotate | Download (5.78 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (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
 */
26
package org.gvsig.tools.extensionpoint;
27

    
28
import java.util.Iterator;
29

    
30
import junit.framework.TestCase;
31

    
32
import org.gvsig.tools.extensionpoint.ExtensionPoint.Extension;
33
import org.gvsig.tools.extensionpoint.impl.DefaultExtensionPointManager;
34

    
35
public class TestExtensionPoints extends TestCase {
36

    
37
        protected void setUp() throws Exception {
38
            // Remove previous registered extension points, so other tests
39
        // don't affect the test validations.
40
                super.setUp();
41
        }
42

    
43
        protected void tearDown() throws Exception {
44
                super.tearDown();
45
        }
46

    
47
        public void test() {
48
                ExtensionPointManager manager = new DefaultExtensionPointManager();
49

    
50
                manager.add("LayerWizars").append("WMS", null,
51
                                UnaExtensionDePrueba1.class);
52
                manager.add("LayerWizars").append("WCS", null,
53
                                UnaExtensionDePrueba2.class);
54
                manager.add("OtherWizars").append("uno", null,
55
                                UnaExtensionDePrueba1.class);
56
                manager.add("OtherWizars").append("dos", null,
57
                                UnaExtensionDePrueba2.class);
58

    
59
                // Comprobamos que el orden de las extensiones es el que hemos fijado.
60
                ExtensionPoint x = manager.get("LayerWizars");
61
                Iterator i = x.iterator();
62
                String[] nombres = {"WMS", "WCS" };
63
                int n = 0;
64
                while( i.hasNext() ) {
65
                        String nombre = ((Extension) i.next()).getName();
66
                        assertTrue(nombres[n].equals(nombre));
67
                        n++;
68
                }
69

    
70

    
71
                ExtensionPoint extensionPointLayerWizars;
72
                extensionPointLayerWizars = manager.get("LayerWizars");
73
                assertTrue(extensionPointLayerWizars.has("WMS"));
74
                assertTrue(extensionPointLayerWizars.has("WCS"));
75

    
76
                assertEquals(2, manager.getCount());
77
                assertEquals(2, extensionPointLayerWizars.getCount());
78

    
79
                ExtensionPoint extensionPointLayerWizars2 = manager.create(
80
                                "LayerWizars", null);
81

    
82

    
83
                extensionPointLayerWizars2.append("File", null,
84
                                UnaExtensionDePrueba3.class);
85
                extensionPointLayerWizars2.append("JDBC", null,
86
                                UnaExtensionDePrueba4.class);
87

    
88
                manager.add(extensionPointLayerWizars2);
89

    
90
                extensionPointLayerWizars = manager.get("LayerWizars");
91
                assertEquals(manager.getCount(), 2);
92
                assertEquals(4, extensionPointLayerWizars.getCount());
93
        assertEquals(2, manager.get("OtherWizars").getCount());
94

    
95
                assertTrue(extensionPointLayerWizars.has("WMS"));
96
                assertTrue(extensionPointLayerWizars.has("WCS"));
97
                assertTrue(extensionPointLayerWizars.has("File"));
98
                assertTrue(extensionPointLayerWizars.has("JDBC"));
99

    
100
                assertEquals(UnaExtensionDePrueba4.class, extensionPointLayerWizars
101
                .get("JDBC").getExtension());
102
        assertEquals(UnaExtensionDePrueba1.class, extensionPointLayerWizars
103
                .get("WMS").getExtension());
104

    
105
                assertEquals(UnaExtensionDePrueba1.class, manager.get("OtherWizars")
106
                .get("uno").getExtension());
107

    
108
                ExtensionPoint extensionPointOther2 = manager.create("OtherWizars",
109
                                null);
110
                extensionPointOther2.append("tres", null, UnaExtensionDePrueba3.class);
111
                extensionPointOther2
112
                                .append("cuatro", null, UnaExtensionDePrueba4.class);
113

    
114
                manager.add(extensionPointOther2);
115

    
116
                ExtensionPoint extensionPointOther = manager.get("OtherWizars");
117
                assertEquals(manager.getCount(), 2);
118
                assertEquals(extensionPointLayerWizars.getCount(), 4);
119
                assertEquals(extensionPointOther.getCount(), 4);
120

    
121
                assertTrue(extensionPointOther.has("uno"));
122
                assertTrue(extensionPointOther.has("dos"));
123
                assertTrue(extensionPointOther.has("tres"));
124
                assertTrue(extensionPointOther.has("cuatro"));
125

    
126
                assertEquals(UnaExtensionDePrueba3.class, extensionPointOther.get(
127
                "tres").getExtension());
128
        assertEquals(UnaExtensionDePrueba2.class, extensionPointOther
129
                .get("dos").getExtension());
130

    
131
                assertEquals(manager.get("Ninguno"), null);
132
        }
133

    
134
        public void testSingleton() {
135
                ExtensionPointManager manager1 = DefaultExtensionPointManager
136
                                .getManager();
137
                int previous_count = manager1.getCount();
138
                if (manager1.has("LayerWizars")) {
139
                        previous_count--;
140
                }
141
                if (manager1.has("OtherWizars")) {
142
                        previous_count--;
143
                }
144

    
145

    
146

    
147
                manager1.add("LayerWizars").append("WMS", null,
148
                                UnaExtensionDePrueba1.class);
149
                manager1.add("LayerWizars").append("WCS", null,
150
                                UnaExtensionDePrueba2.class);
151
                manager1.add("OtherWizars").append("uno", null,
152
                                UnaExtensionDePrueba1.class);
153
                manager1.add("OtherWizars").append("dos", null,
154
                                UnaExtensionDePrueba2.class);
155

    
156
                ExtensionPointManager manager2 = DefaultExtensionPointManager
157
                                .getManager();
158
                assertEquals(previous_count + 2, manager2.getCount());
159
                assertEquals(previous_count + 2, manager1.getCount());
160

    
161
                ExtensionPoint extensionPointLayerWizars;
162
                extensionPointLayerWizars = manager2.get("LayerWizars");
163
                assertTrue(extensionPointLayerWizars.has("WMS"));
164
                assertTrue(extensionPointLayerWizars.has("WCS"));
165
        }
166
}
167

    
168
class UnaExtensionDePrueba1 {
169
    public UnaExtensionDePrueba1() {
170
                ;
171
        }
172
}
173
class UnaExtensionDePrueba2 {
174
        public UnaExtensionDePrueba2() {
175
        }
176
}
177

    
178
class UnaExtensionDePrueba3 {
179
        public UnaExtensionDePrueba3() {
180
        }
181
}
182

    
183
class UnaExtensionDePrueba4 {
184
        public UnaExtensionDePrueba4() {
185
        }
186
}