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 @ 47606

History | View | Annotate | Download (5.24 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.AbstractTestUtils.Expecteds;
10
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
11
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
12
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
13
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
14
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.CreateTableOperation;
15
import org.gvsig.sqlite.dal.TestUtils;
16
import org.gvsig.sqlite.dal.TestUtilsSQLite;
17
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
18
import org.slf4j.Logger;
19
import org.slf4j.LoggerFactory;
20

    
21
public class TestCreateTable extends TestCase {
22

    
23
  private static final Logger LOGGER = LoggerFactory.getLogger(TestCreateTable.class);
24

    
25
  public TestCreateTable(String testName) {
26
    super(testName);
27
  }
28

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

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

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

    
49
        TestUtilsSQLite utils = new TestUtilsSQLite();
50
        Expecteds expecteds = utils.getExpecteds("createTable.sql");
51
        
52
        List<String> expectedSQLs = expecteds.getAll("createTable");
53

    
54
        FeatureStore sourceStore = TestUtils.openSourceStore1();
55

    
56
        TableReference table = operations.createTableReference(
57
                "dbtest", 
58
                sqlbuilder.default_schema(), 
59
                "test", 
60
                null
61
        );
62
        FeatureType featureType = sourceStore.getDefaultFeatureType();
63
        CreateTableOperation createTable = operations.createTable(
64
                table,
65
                featureType,
66
                null,
67
                null
68
        );
69
        List<String> SQLs = createTable.getSQLs();
70
        for (int i = 0; i < SQLs.size(); i++) {
71
            System.out.println("###### testCreateTable");
72
            System.out.println("###### SQL:" + SQLs.get(i) + ";");
73
        }
74

    
75
        assertEquals("CreateTable num. SQLs", expectedSQLs.size(), SQLs.size());
76
          for (int i = 0; i < expectedSQLs.size(); i++) {
77
              System.out.println("###### SQL" + i + ":" + SQLs.get(i) + ";");
78
              System.out.println("###### EXP" + i + ":" + expectedSQLs.get(i) + ";");
79
              if (i != 3) {
80
                  assertEquals("CreateTable SQL " + i, expectedSQLs.get(i), SQLs.get(i));
81
              } else {
82
                  assertTrue(expecteds.match("createTable", i, SQLs.get(i)));
83
              }
84
          }
85
      } catch(Exception ex) {
86
          LOGGER.warn("Error",ex);
87
          throw ex;
88
      }
89
  }
90

    
91
  public void testCreateTableWithDefaultDynamicText() throws Exception {
92
      try {
93
        JDBCHelper helper = TestUtils.createJDBCHelper();
94
        JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
95
        OperationsFactory operations = helper.getOperations();
96

    
97
        TestUtilsSQLite utils = new TestUtilsSQLite();
98
        Expecteds expecteds = utils.getExpecteds("createTable.sql");
99

    
100
        List<String> expectedSQLs = expecteds.getAll("createTable");
101

    
102
        FeatureStore sourceStore = TestUtils.openSourceStore1();
103

    
104
        TableReference table = operations.createTableReference(
105
                "dbtest", 
106
                sqlbuilder.default_schema(), 
107
                "test", 
108
                null
109
        );
110
        FeatureType featureType = sourceStore.getDefaultFeatureType();
111
        EditableFeatureType eft = featureType.getEditable();
112
        EditableFeatureAttributeDescriptor date_attr = (EditableFeatureAttributeDescriptor) eft.getAttributeDescriptor("Date");
113
        date_attr.setDefaultValue("'<%=CURRENT_TIMESTAMP()%>'");
114
        CreateTableOperation createTable = operations.createTable(
115
                table,
116
                eft,
117
                null,
118
                null
119
        );
120
        List<String> SQLs = createTable.getSQLs();
121

    
122
        for (int i = 0; i < SQLs.size(); i++) {
123
            System.out.println("###### testCreateTable");
124
            System.out.println("###### SQL:" + SQLs.get(i) + ";");
125
        }
126

    
127
        assertEquals("CreateTable num. SQLs", expectedSQLs.size(), SQLs.size());
128
        for (int i = 0; i < expectedSQLs.size(); i++) {
129
          System.out.println("###### SQL" + i + ":" + SQLs.get(i) + ";");
130
          System.out.println("###### EXP" + i + ":" + expectedSQLs.get(i) + ";");
131
          if (i != 3) {
132
            assertEquals("CreateTable SQL "+i, expectedSQLs.get(i), SQLs.get(i));
133
          } else {
134
            assertTrue(expecteds.match("createTable", i, SQLs.get(i)));
135
          }
136

    
137
        }
138
      } catch(Exception ex) {
139
          LOGGER.warn("Error",ex);
140
          throw ex;
141
      }
142
  }
143
  
144
}