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 / operations / sql / TestCreateTable.java @ 47539

History | View | Annotate | Download (3.93 KB)

1
package org.gvsig.sqlite.dal.operations.sql;
2

    
3
import java.util.List;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
6
import org.gvsig.fmap.dal.feature.EditableFeatureType;
7
import org.gvsig.fmap.dal.feature.FeatureStore;
8
import org.gvsig.fmap.dal.feature.FeatureType;
9
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
10
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
11
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
12
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
13
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.CreateTableOperation;
14
import org.gvsig.sqlite.dal.TestUtils;
15
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
16
import org.slf4j.Logger;
17
import org.slf4j.LoggerFactory;
18

    
19
public class TestCreateTable extends TestCase {
20

    
21
  private static final Logger LOGGER = LoggerFactory.getLogger(TestCreateTable.class);
22

    
23
  public TestCreateTable(String testName) {
24
    super(testName);
25
  }
26

    
27
  @Override
28
  protected void setUp() throws Exception {
29
    super.setUp();
30
    new DefaultLibrariesInitializer().fullInitialize();
31
  }
32

    
33
  @Override
34
  protected void tearDown() throws Exception {
35
    super.tearDown();
36
  }
37

    
38
  // TODO add test methods here. The name must begin with 'test'. For example:
39
  // public void testHello() {}
40
  
41
  public void testCreateTable() throws Exception {
42
      try {
43
        JDBCHelper helper = TestUtils.createJDBCHelper();
44
        JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
45
        OperationsFactory operations = helper.getOperations();
46

    
47
        List<String> expectedSQLs = TestUtils.getSQLs("createTable.sql");
48

    
49
        FeatureStore sourceStore = TestUtils.openSourceStore1();
50

    
51
        TableReference table = operations.createTableReference(
52
                "dbtest", 
53
                sqlbuilder.default_schema(), 
54
                "test", 
55
                null
56
        );
57
        FeatureType featureType = sourceStore.getDefaultFeatureType();
58
        CreateTableOperation createTable = operations.createTable(
59
                table,
60
                featureType,
61
                null,
62
                null
63
        );
64
        List<String> SQLs = createTable.getSQLs();
65
        assertEquals("CreateTable num. SQLs", expectedSQLs.size(), SQLs.size());
66
        for (int i = 0; i < expectedSQLs.size(); i++) {
67
          assertEquals("CreateTable SQL "+i, expectedSQLs.get(i), SQLs.get(i));
68
        }
69
      } catch(Exception ex) {
70
          LOGGER.warn("Error",ex);
71
          throw ex;
72
      }
73
  }
74

    
75
  public void testCreateTableWithDefaultDynamicText() throws Exception {
76
      try {
77
        JDBCHelper helper = TestUtils.createJDBCHelper();
78
        JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
79
        OperationsFactory operations = helper.getOperations();
80

    
81
        List<String> expectedSQLs = TestUtils.getSQLs("createTable.sql");
82

    
83
        FeatureStore sourceStore = TestUtils.openSourceStore1();
84

    
85
        TableReference table = operations.createTableReference(
86
                "dbtest", 
87
                sqlbuilder.default_schema(), 
88
                "test", 
89
                null
90
        );
91
        FeatureType featureType = sourceStore.getDefaultFeatureType();
92
        EditableFeatureType eft = featureType.getEditable();
93
        EditableFeatureAttributeDescriptor date_attr = (EditableFeatureAttributeDescriptor) eft.getAttributeDescriptor("Date");
94
        date_attr.setDefaultValue("'<%=CURRENT_TIMESTAMP()%>'");
95
        CreateTableOperation createTable = operations.createTable(
96
                table,
97
                eft,
98
                null,
99
                null
100
        );
101
        List<String> SQLs = createTable.getSQLs();
102
        assertEquals("CreateTable num. SQLs", expectedSQLs.size(), SQLs.size());
103
        for (int i = 0; i < expectedSQLs.size(); i++) {
104
          assertEquals("CreateTable SQL "+i, expectedSQLs.get(i), SQLs.get(i));
105
        }
106
      } catch(Exception ex) {
107
          LOGGER.warn("Error",ex);
108
          throw ex;
109
      }
110
  }
111
  
112
}