Revision 44771

View differences:

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
1
package org.gvsig.fmap.dal.store.dbf;
2

  
3
import java.io.File;
4
import java.util.Date;
5
import java.util.List;
6
import junit.framework.TestCase;
7
import org.apache.commons.lang3.StringUtils;
8
import org.gvsig.fmap.dal.DALLocator;
9
import org.gvsig.fmap.dal.DataManager;
10
import org.gvsig.fmap.dal.DataServerExplorer;
11
import org.gvsig.fmap.dal.DataStore;
12
import org.gvsig.fmap.dal.DataTypes;
13
import org.gvsig.fmap.dal.feature.EditableFeature;
14
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
15
import org.gvsig.fmap.dal.feature.EditableFeatureType;
16
import org.gvsig.fmap.dal.feature.Feature;
17
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
18
import org.gvsig.fmap.dal.feature.FeatureExtraColumn;
19
import org.gvsig.fmap.dal.feature.FeatureQuery;
20
import org.gvsig.fmap.dal.feature.FeatureStore;
21
import org.gvsig.fmap.dal.feature.FeatureType;
22
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
23
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
24
import org.gvsig.fmap.dal.store.dbf.utils.FieldFormatter;
25
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
26

  
27
public class TestExtraColumn extends TestCase {
28
    
29
    public TestExtraColumn(String testName) {
30
        super(testName);
31
    }
32
    
33
    @Override
34
    protected void setUp() throws Exception {
35
        super.setUp();
36
        new DefaultLibrariesInitializer().fullInitialize();
37
    }
38
    
39
    @Override
40
    protected void tearDown() throws Exception {
41
        super.tearDown();
42
    }
43

  
44
    // TODO add test methods here. The name must begin with 'test'. For example:
45
    // public void testHello() {}
46

  
47
    protected String getProviderName() {
48
        return DataStore.DBASE_PROVIDER_NAME;
49
    }
50
    
51
    protected String getTargetFilename() {
52
        return "testCreateTarget1.dbf";
53
    }
54

  
55
    protected FeatureStore openTargetStore1() throws Exception {
56
        DataManager dataManager = DALLocator.getDataManager();
57
        File f = TestUtils.getResource(getTargetFilename());
58
        FeatureStore store = (FeatureStore) dataManager.openStore(
59
                getProviderName(), 
60
                "DbfFile",f
61
        );
62
        return store;
63
    }
64

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

Also available in: Unified diff