Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.sqlite / org.gvsig.sqlite.provider / src / test / java / org / gvsig / sqlite / dal / WorkspaceTest.java @ 47606

History | View | Annotate | Download (4.14 KB)

1
package org.gvsig.sqlite.dal;
2

    
3
import java.util.HashMap;
4
import java.util.List;
5
import java.util.Map;
6
import junit.framework.TestCase;
7
import org.gvsig.fmap.dal.DALLocator;
8
import org.gvsig.fmap.dal.DataManager;
9
import org.gvsig.fmap.dal.DataStore;
10
import org.gvsig.fmap.dal.DataStoreParameters;
11
import org.gvsig.fmap.dal.DatabaseWorkspaceManager;
12
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
13
import org.gvsig.fmap.dal.feature.EditableFeatureType;
14
import org.gvsig.fmap.dal.feature.FeatureStore;
15
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
16
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters;
17
import org.gvsig.fmap.dal.store.jdbc2.JDBCServerExplorer;
18
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
19
import org.slf4j.Logger;
20
import org.slf4j.LoggerFactory;
21

    
22
/**
23
 *
24
 * @author jjdelcerro
25
 */
26
public class WorkspaceTest extends TestCase {
27
    private static final Logger LOGGER = LoggerFactory.getLogger(TestCreate.class);
28

    
29
    public static final String DBNAME = "test_workspace";
30
   
31
    public WorkspaceTest(String testName) {
32
        super(testName);
33
    }
34

    
35
    @Override
36
    protected void setUp() throws Exception {
37
        super.setUp();
38
        new DefaultLibrariesInitializer().fullInitialize();
39
    }
40

    
41
    @Override
42
    protected void tearDown() throws Exception {
43
        super.tearDown();
44
    }
45

    
46
    protected String getProviderName() {
47
        return DataStore.H2SPATIAL_PROVIDER_NAME;
48
    }
49
    
50
    protected String getTargetName() {
51
        return "testCreateTarget1";
52
    }
53
    
54
    protected FeatureStore openTargetStore1(JDBCServerExplorer explorer) throws Exception {
55
        JDBCStoreParameters params = explorer.get(getTargetName());
56
        
57
        DataManager dataManager = DALLocator.getDataManager();
58
        FeatureStore store;
59
        try {
60
            store = (FeatureStore) dataManager.openStore(
61
                    getProviderName(), 
62
                    params
63
            );
64
        } catch(ValidateDataParametersException ex) {
65
            LOGGER.warn(ex.getLocalizedMessageStack());
66
            throw ex;
67
        }
68
        return store;
69
    }
70

    
71
    protected void createFrom(JDBCServerExplorer explorer, FeatureStore sourceStore) throws Exception {
72
        NewFeatureStoreParameters params = (NewFeatureStoreParameters) explorer.getAddParameters(
73
                getTargetName()
74
        );
75
        EditableFeatureType ft = params.getDefaultFeatureType();
76
        ft.addAll(sourceStore.getDefaultFeatureType());
77
        explorer.add(getProviderName(), params, true);
78
    }
79

    
80
    public void testWorkspace() throws Exception {
81
        try {
82
            FeatureStore sourceStore = TestUtils.openSourceStore1();
83
            JDBCServerExplorer explorer = TestUtils.openServerExplorer(DBNAME);
84

    
85
            createFrom(explorer, sourceStore);        
86

    
87
            DataManager dataManager = DALLocator.getDataManager();
88

    
89
            DatabaseWorkspaceManager workspace = dataManager.createDatabaseWorkspaceManager(explorer.getParameters());
90

    
91
            workspace.create("Testid", "Test label");
92
            workspace.disconnect();
93

    
94
            workspace = dataManager.createDatabaseWorkspaceManager(explorer.getParameters());
95
            assertEquals("Testid",workspace.getId());
96
            assertEquals("Test label",workspace.getLabel());
97

    
98
            List<DataStoreParameters> tables_l = explorer.list();
99
            assertEquals(12, tables_l.size()); 
100

    
101
            Map<String, JDBCStoreParameters> tables = new HashMap<>();        
102
            for (DataStoreParameters table1 : tables_l) {
103
                JDBCStoreParameters table = (JDBCStoreParameters) table1;
104
                tables.put(table.getTable(), table);
105
            }
106

    
107
            JDBCStoreParameters params = tables.get("testCreateTarget1");
108
            assertNotNull("Table testCreateTarget1 not found",params);
109

    
110
            workspace.writeStoresRepositoryEntry(params.getTable(), params);
111

    
112
            DataStoreParameters store = workspace.getStoresRepository().get(params.getTable());
113
            assertNotNull("Can't open table testCreateTarget1 ",store);
114
        } catch (Throwable th) {
115
            LOGGER.warn("testWorkspace", th);
116
            throw th;
117
        }
118
    }
119

    
120
}