Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.file / org.gvsig.fmap.dal.file.dbf / src / test / java / org / gvsig / fmap / dal / store / dbf / TestExtraColumn.java @ 44774

History | View | Annotate | Download (3.87 KB)

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

    
3
import java.io.File;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.DALLocator;
6
import org.gvsig.fmap.dal.DataManager;
7
import org.gvsig.fmap.dal.DataServerExplorer;
8
import org.gvsig.fmap.dal.DataStore;
9
import org.gvsig.fmap.dal.feature.EditableFeature;
10
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
11
import org.gvsig.fmap.dal.feature.EditableFeatureType;
12
import org.gvsig.fmap.dal.feature.Feature;
13
import org.gvsig.fmap.dal.feature.FeatureExtraColumn;
14
import org.gvsig.fmap.dal.feature.FeatureQuery;
15
import org.gvsig.fmap.dal.feature.FeatureStore;
16
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
17
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
18
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
19

    
20
public class TestExtraColumn extends TestCase {
21
    
22
    public TestExtraColumn(String testName) {
23
        super(testName);
24
    }
25
    
26
    @Override
27
    protected void setUp() throws Exception {
28
        super.setUp();
29
        new DefaultLibrariesInitializer().fullInitialize();
30
    }
31
    
32
    @Override
33
    protected void tearDown() throws Exception {
34
        super.tearDown();
35
    }
36

    
37
    // TODO add test methods here. The name must begin with 'test'. For example:
38
    // public void testHello() {}
39

    
40
    protected String getProviderName() {
41
        return DataStore.DBASE_PROVIDER_NAME;
42
    }
43
    
44
    protected String getTargetFilename() {
45
        return "testCreateTarget1.dbf";
46
    }
47

    
48
    protected FeatureStore openTargetStore1() throws Exception {
49
        DataManager dataManager = DALLocator.getDataManager();
50
        File f = TestUtils.getResource(getTargetFilename());
51
        FeatureStore store = (FeatureStore) dataManager.openStore(
52
                getProviderName(), 
53
                "DbfFile",f
54
        );
55
        return store;
56
    }
57

    
58
    protected void createFrom(FeatureStore sourceStore) throws Exception {
59
        DataManager dataManager = DALLocator.getDataManager();
60
        DataServerExplorer explorer = dataManager.openServerExplorer(
61
                DataServerExplorer.FILESYSTEM_SERVER_EXPLORER_NAME, 
62
                "root", TestUtils.getTargetFolder()
63
        );
64
        
65
        NewFeatureStoreParameters params = (NewFeatureStoreParameters) explorer.getAddParameters(
66
                getProviderName()
67
        );
68
        ((FilesystemStoreParameters)params).setFile(TestUtils.getResource(getTargetFilename()));
69
        EditableFeatureType ft = params.getDefaultFeatureType();
70
        ft.addAll(sourceStore.getDefaultFeatureType());
71
        explorer.add(getProviderName(), params, true);
72
    }
73
    
74
    
75
    protected void copyFrom(FeatureStore sourceStore, int mode) throws Exception {
76
        FeatureStore targetStore = openTargetStore1();
77
        targetStore.edit(mode);
78
        try {
79
            for (Feature sourceFeature : sourceStore.getFeatureSet()) {
80
                EditableFeature targetFeature = targetStore.createNewFeature(sourceFeature);
81
                targetStore.insert(targetFeature);
82
            }
83
        } finally {
84
            targetStore.finishEditing();
85
        }
86
    }
87
    
88
    public void testColumnExtra1() throws Exception {
89
        FeatureStore sourceStore = TestUtils.openSourceStore1();
90
        
91
        createFrom(sourceStore);        
92
        copyFrom(sourceStore, FeatureStore.MODE_APPEND);
93
        FeatureStore store = openTargetStore1();
94
        FeatureQuery query = store.createFeatureQuery();
95
        FeatureExtraColumn extra = query.getExtraColumn();
96
        EditableFeatureAttributeDescriptor column = extra.add("test1");
97
        column.setFeatureAttributeEmulator("22.2");
98
        Feature f = store.findFirst(query);
99
        EditableFeatureAttributeDescriptor column2 = f.getType().getExtraColumn().get("test1");
100
        assertTrue(column2!=null);
101
        Double value = (Double) f.getExtraValue("test1");
102
        assertEquals((Double)22.2, value);        
103
    }
104
}