Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.db / org.gvsig.fmap.dal.db.jdbc / src / test / java / org / gvsig / fmap / dal / store / jdbc2 / AbstractTestExport2db.java @ 46109

History | View | Annotate | Download (6.86 KB)

1
package org.gvsig.fmap.dal.store.jdbc2;
2

    
3
import junit.framework.TestCase;
4
import static junit.framework.TestCase.assertEquals;
5
import org.gvsig.fmap.dal.DatabaseWorkspaceManager;
6
import org.gvsig.fmap.dal.feature.EditableFeatureType;
7
import org.gvsig.fmap.dal.feature.FeatureStore;
8
import org.gvsig.fmap.dal.feature.FeatureType;
9
import org.gvsig.tools.dispose.DisposeUtils;
10
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
11
import org.slf4j.Logger;
12
import org.slf4j.LoggerFactory;
13

    
14
public abstract class AbstractTestExport2db extends TestCase {
15

    
16
    protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractTestExport2db.class);
17

    
18
    protected AbstractTestUtils utils;
19

    
20
    public AbstractTestExport2db(String testName) {
21
        super(testName);
22
    }
23

    
24
    @Override
25
    protected void setUp() throws Exception {
26
        super.setUp();
27
        new DefaultLibrariesInitializer().fullInitialize();
28
    }
29

    
30
    @Override
31
    protected void tearDown() throws Exception {
32
        super.tearDown();
33
    }
34

    
35
    public AbstractTestUtils utils() {
36
        if (this.utils == null) {
37
            this.utils = this.createUtils();
38
        }
39
        return this.utils;
40
    }
41

    
42
    protected abstract AbstractTestUtils createUtils();
43

    
44
    // TODO add test methods here. The name must begin with 'test'. For example:
45
    // public void testHello() {}
46
    protected void testExport1() throws Exception {
47
        try {
48
            if (!utils().isTheDatabaseAvailable()) {
49
                return;
50
            }
51
            FeatureStore sourceStore = utils().openCSVStore("/org/gvsig/fmap/dal/store/jdbc2/continentes_nogeom.csv");
52
            JDBCServerExplorer explorer = utils().openServerExplorer("testExport1");
53

    
54
            utils().info_jdbc(explorer);
55

    
56
            // Importamos el CSV en la bbdd
57
            utils().drop_tables(explorer, "continentes", DatabaseWorkspaceManager.TABLE_RESOURCES_NAME);
58
            utils().create_table_from(explorer, "continentes", sourceStore);
59
            utils().insert_into_from(explorer, "continentes", sourceStore, FeatureStore.MODE_APPEND);
60

    
61
            // Le ponemos como Pk el campo ID
62
            FeatureStore dbstore = utils().openStore(explorer, "continentes");
63
            dbstore.edit();
64
            FeatureType featureType = dbstore.getDefaultFeatureType();
65
            EditableFeatureType eFeatureType = featureType.getEditable();
66
            eFeatureType.getEditableAttributeDescriptor("ID").setIsPrimaryKey(true);
67
            dbstore.update(eFeatureType);
68
            dbstore.finishEditing();
69
            DisposeUtils.dispose(dbstore);
70

    
71
            // Comprobamos los campos que tiene la tabla de la bbdd.
72
            utils().removeResource(explorer, "continentes", "dal");
73

    
74
            dbstore = utils().openStore(explorer, "continentes");
75
            featureType = dbstore.getDefaultFeatureType();
76
            assertEquals("Fields count", 2, featureType.size());
77

    
78
            assertEquals("Field(0).name", "ID", featureType.getAttributeDescriptor(0).getName());
79
            assertEquals("Field(1).name", "NAME", featureType.getAttributeDescriptor(1).getName());
80

    
81
            assertEquals("Field(ID).isPrimaryKey", true, featureType.getAttributeDescriptor(0).isPrimaryKey());
82
            assertEquals("Field(NAME).isPrimaryKey", false, featureType.getAttributeDescriptor(1).isPrimaryKey());
83
            assertEquals("Field(ID).isIndexed", true, featureType.getAttributeDescriptor(0).isIndexed());
84
            assertEquals("Field(NAME).isIndexed", false, featureType.getAttributeDescriptor(1).isIndexed());
85

    
86
            // Le ponemos como Pk el campo NAME y lo quitamos del ID
87
            dbstore = utils().openStore(explorer, "continentes");
88
            dbstore.edit();
89
            featureType = dbstore.getDefaultFeatureType();
90
            eFeatureType = featureType.getEditable();
91
            eFeatureType.getEditableAttributeDescriptor("ID").setIsPrimaryKey(false);
92
            eFeatureType.getEditableAttributeDescriptor("NAME").setIsPrimaryKey(true);
93
            dbstore.update(eFeatureType);
94
            dbstore.finishEditing();
95
            DisposeUtils.dispose(dbstore);
96

    
97
            // Comprobamos los campos que tiene la tabla de la bbdd.
98
            utils().removeResource(explorer, "continentes", "dal");
99

    
100
            dbstore = utils().openStore(explorer, "continentes");
101
            featureType = dbstore.getDefaultFeatureType();
102
            assertEquals("Fields count", 2, featureType.size());
103

    
104
            assertEquals("Field(0).name", "ID", featureType.getAttributeDescriptor(0).getName());
105
            assertEquals("Field(1).name", "NAME", featureType.getAttributeDescriptor(1).getName());
106

    
107
            assertEquals("Field(ID).isPrimaryKey", false, featureType.getAttributeDescriptor(0).isPrimaryKey());
108
            assertEquals("Field(NAME).isPrimaryKey", true, featureType.getAttributeDescriptor(1).isPrimaryKey());
109
            assertEquals("Field(ID).isIndexed", false, featureType.getAttributeDescriptor(0).isIndexed());
110
            assertEquals("Field(NAME).isIndexed", true, featureType.getAttributeDescriptor(1).isIndexed());
111

    
112
            DisposeUtils.dispose(dbstore);
113

    
114
            // Le ponemos como Pk el campo NAME y lo quitamos del ID
115
            dbstore = utils().openStore(explorer, "continentes");
116
            dbstore.edit();
117
            featureType = dbstore.getDefaultFeatureType();
118
            eFeatureType = featureType.getEditable();
119
            eFeatureType.getEditableAttributeDescriptor("ID").setIsPrimaryKey(false);
120
            eFeatureType.getEditableAttributeDescriptor("NAME").setIsPrimaryKey(true);
121

    
122
            eFeatureType.getEditableAttributeDescriptor("ID").setIsIndexed(true);
123
            eFeatureType.getEditableAttributeDescriptor("NAME").setIsIndexed(true);
124
            dbstore.update(eFeatureType);
125
            dbstore.finishEditing();
126
            DisposeUtils.dispose(dbstore);
127

    
128
            // Comprobamos los campos que tiene la tabla de la bbdd.
129
            utils().removeResource(explorer, "continentes", "dal");
130

    
131
            dbstore = utils().openStore(explorer, "continentes");
132
            featureType = dbstore.getDefaultFeatureType();
133
            assertEquals("Fields count", 2, featureType.size());
134

    
135
            assertEquals("Field(0).name", "ID", featureType.getAttributeDescriptor(0).getName());
136
            assertEquals("Field(1).name", "NAME", featureType.getAttributeDescriptor(1).getName());
137

    
138
            assertEquals("Field(ID).isPrimaryKey", false, featureType.getAttributeDescriptor(0).isPrimaryKey());
139
            assertEquals("Field(NAME).isPrimaryKey", true, featureType.getAttributeDescriptor(1).isPrimaryKey());
140
            assertEquals("Field(ID).isIndexed", true, featureType.getAttributeDescriptor(0).isIndexed());
141
            assertEquals("Field(NAME).isIndexed", true, featureType.getAttributeDescriptor(1).isIndexed());
142

    
143

    
144
            DisposeUtils.dispose(dbstore);
145
        } catch (Throwable th) {
146
            LOGGER.warn("", th);
147
            throw th;
148
        }
149
    }
150

    
151
}