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

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

    
22
public class TestCreateTable extends TestCase {
23

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

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

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

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

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

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

    
55
        FeatureStore sourceStore = TestUtils.openSourceStore1();
56

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

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

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

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

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

    
103
        FeatureStore sourceStore = TestUtils.openSourceStore1();
104

    
105
        TableReference table = operations.createTableReference(
106
                "dbtest", 
107
                sqlbuilder.default_schema(), 
108
                "test", 
109
                null
110
        );
111
        FeatureType featureType = sourceStore.getDefaultFeatureType();
112
        EditableFeatureType eft = featureType.getEditable();
113
        EditableFeatureAttributeDescriptor date_attr = (EditableFeatureAttributeDescriptor) eft.getAttributeDescriptor("Date");
114
        date_attr.setDefaultValue("'<%=CURRENT_TIMESTAMP()%>'");
115
        CreateTableOperation createTable = operations.createTable(
116
                table,
117
                eft,
118
                null,
119
                null
120
        );
121
        List<String> SQLs = createTable.getSQLs();
122
        assertEquals("CreateTable num. SQLs", expectedSQLs.size(), SQLs.size());
123
        for (int i = 0; i < expectedSQLs.size(); i++) {
124
          System.out.println("###### SQL" + i + ":" + SQLs.get(i) + ";");
125
          System.out.println("###### EXP" + i + ":" + expectedSQLs.get(i) + ";");
126
          if (i != 3) {
127
            assertEquals("CreateTable SQL "+i, expectedSQLs.get(i), SQLs.get(i));
128
          } else {
129
            assertTrue(expecteds.match("createTable", i, SQLs.get(i)));
130
          }
131

    
132
        }
133
      } catch(Exception ex) {
134
          LOGGER.warn("Error",ex);
135
          throw ex;
136
      }
137
  }
138
  
139
}