Statistics
| Revision:

root / branches / v2_0_0_prep / applications / appgvSIG / src-test / com / iver / cit / gvsig / test / Persistence.java @ 22932

History | View | Annotate | Download (3.68 KB)

1
package com.iver.cit.gvsig.test;
2

    
3
import java.awt.Dimension;
4
import java.io.File;
5

    
6
import org.gvsig.fmap.crs.CRSFactory;
7
import org.gvsig.fmap.datasources.SelectableDataSource;
8
import org.gvsig.fmap.drivers.reading.VectorialFileDriver;
9
import org.gvsig.fmap.drivers.writing.adapters.EditableAdapter;
10
import org.gvsig.fmap.mapcontext.MapContext;
11
import org.gvsig.fmap.mapcontext.ViewPort;
12
import org.gvsig.fmap.mapcontext.layers.FLayer;
13
import org.gvsig.fmap.mapcontext.layers.LayerFactory;
14
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
15

    
16
import junit.framework.TestCase;
17

    
18
import com.hardcode.gdbms.engine.data.DataSourceFactory;
19
import com.iver.cit.gvsig.ProjectExtension;
20
import com.iver.cit.gvsig.project.Project;
21
import com.iver.cit.gvsig.project.ProjectFactory;
22
import com.iver.cit.gvsig.project.documents.table.ProjectTable;
23
import com.iver.cit.gvsig.project.documents.table.ProjectTableFactory;
24
import com.iver.cit.gvsig.project.documents.view.ProjectView;
25

    
26
/**
27
 * @author Fernando Gonz?lez Cort?s
28
 */
29
public class Persistence extends TestCase {
30
        private ProjectExtension pe;
31

    
32
        /*
33
         * @see TestCase#setUp()
34
         */
35
        protected void setUp() throws Exception {
36
                pe = new ProjectExtension();
37
//                pe.inicializar();
38
                LayerFactory.setDriversPath(
39
                "/root/workspace/Andami/gvSIG/extensiones/com.iver.cit.gvsig/drivers");
40

    
41
                LayerFactory.getDataSourceFactory().addFileDataSource("gdbms dbf driver", "prueba",
42
                                "test/cities.dbf");
43

    
44
        }
45

    
46
        public void testPersist() throws Throwable {
47
                Project p = new Project();
48

    
49
                /*
50
                 * A?adimos una vista con una capa
51
                 */
52
                ProjectView v = new ProjectView();
53
                ViewPort vp = new ViewPort( CRSFactory.getCRS("EPSG:23030"));
54
                vp.setImageSize(new Dimension(500, 500));
55

    
56
                MapContext fmap = new MapContext(vp);
57
                v.setMapContext(fmap);
58
                FLayer l = LayerFactory.createLayer("Vias",
59
                        (VectorialFileDriver) LayerFactory.getDM().getDriver("gvSIG shp driver"),
60
                        new File("test/cities.shp"),
61
                        CRSFactory.getCRS("EPSG:23030"));
62
                fmap.getLayers().addLayer(l);
63

    
64
                /*
65
                 * A?adimos la tabla del tema anterior
66
                 */
67
                SelectableDataSource sds1 = ((FLyrVect) l).getRecordset();
68
                EditableAdapter ea1 = new EditableAdapter();
69
                ea1.setOriginalDataSource(sds1);
70

    
71
                ProjectTable pt1 = ProjectFactory.createTable("tabla", ea1);
72
                p.addDocument(pt1);
73

    
74
                /*
75
                 * A?adimos otra tabla
76
                 */
77
                SelectableDataSource sds2 = new SelectableDataSource(LayerFactory.getDataSourceFactory().createRandomDataSource("prueba", DataSourceFactory.MANUAL_OPENING));
78
                EditableAdapter ea2 = new EditableAdapter();
79
                ea2.setOriginalDataSource(sds2);
80
                ProjectTable pt2 = ProjectFactory.createTable("tabla2", ea2);
81
                p.addTable(pt2);
82

    
83
                /*
84
                 * Creamos un join
85
                 */
86
                String sql = "custom com_iver_cit_gvsig_arcjoin tables '"+
87
                sds1.getName()+"', '"+sds1.getName()+"' values(NAME,NAME);";
88

    
89
                SelectableDataSource result = new SelectableDataSource(
90
                                LayerFactory.getDataSourceFactory()
91
                                .executeSQL(sql, DataSourceFactory.MANUAL_OPENING));
92
                EditableAdapter auxea=new EditableAdapter();
93
                auxea.setOriginalDataSource(result);
94

    
95
                pt1.replaceDataSource(auxea);
96

    
97
                /*
98
                 * Guardamos y cargamos
99
                 */
100
                File temp = File.createTempFile("junit-", ".gvp");
101
                temp.deleteOnExit();
102
                pe.writeProject(temp, p);
103

    
104
                Project p2 = pe.readProject(temp);
105

    
106
                /*
107
                 * Comprobamos que las dos tablas son id?nticas
108
                 */
109
                assertTrue(((ProjectTable)p2.getDocumentsByType(ProjectTableFactory.registerName).get(0)).getModel().getRecordset().getAsString().equals(((ProjectTable)p.getTables().get(0)).getModel().getRecordset().getAsString()));
110
                assertTrue(((ProjectTable)p2.getDocumentsByType(ProjectTableFactory.registerName).get(1)).getModel().getRecordset().getAsString().equals(((ProjectTable)p.getTables().get(1)).getModel().getRecordset().getAsString()));
111
        }
112
}