Statistics
| Revision:

svn-gvsig-desktop / trunk / applications / appgvSIG / src-test / com / iver / cit / gvsig / test / Persistence.java @ 13423

History | View | Annotate | Download (3.7 KB)

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

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

    
6
import junit.framework.TestCase;
7

    
8
import com.hardcode.gdbms.engine.data.DataSourceFactory;
9
import com.iver.cit.gvsig.ProjectExtension;
10
import com.iver.cit.gvsig.fmap.MapContext;
11
import com.iver.cit.gvsig.fmap.ViewPort;
12
import com.iver.cit.gvsig.fmap.crs.CRSFactory;
13
import com.iver.cit.gvsig.fmap.drivers.VectorialFileDriver;
14
import com.iver.cit.gvsig.fmap.edition.EditableAdapter;
15
import com.iver.cit.gvsig.fmap.layers.FLayer;
16
import com.iver.cit.gvsig.fmap.layers.LayerFactory;
17
import com.iver.cit.gvsig.fmap.layers.SelectableDataSource;
18
import com.iver.cit.gvsig.fmap.layers.layerOperations.AlphanumericData;
19
import com.iver.cit.gvsig.project.Project;
20
import com.iver.cit.gvsig.project.ProjectFactory;
21
import com.iver.cit.gvsig.project.documents.table.ProjectTable;
22
import com.iver.cit.gvsig.project.documents.table.ProjectTableFactory;
23
import com.iver.cit.gvsig.project.documents.view.ProjectView;
24

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

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

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

    
43
        }
44

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

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

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

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

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

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

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

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

    
94
                pt1.replaceDataSource(auxea);
95

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

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

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