Revision 877

View differences:

tags/org.gvsig.postgresql-2.0.173/org.gvsig.postgresql.provider/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2

  
3
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4

  
5
  <modelVersion>4.0.0</modelVersion>
6
  <artifactId>org.gvsig.postgresql.provider</artifactId>
7
  <packaging>jar</packaging>
8
  <name>${project.artifactId}</name>
9
  <description>DAL provider for PostgeSQL files</description>
10
  <parent>
11
    <groupId>org.gvsig</groupId>
12
    <artifactId>org.gvsig.postgresql</artifactId>
13
    <version>2.0.173</version>
14
  </parent>
15
  <dependencies>
16
    <dependency>
17
      <groupId>com.googlecode.log4jdbc</groupId>
18
      <artifactId>log4jdbc</artifactId>
19
      <scope>compile</scope>
20
    </dependency>
21
    <dependency>
22
      <groupId>org.gvsig</groupId>
23
      <artifactId>org.gvsig.tools.lib</artifactId>
24
      <scope>compile</scope>
25
    </dependency>
26
    <dependency>
27
      <groupId>org.gvsig</groupId>
28
      <artifactId>org.gvsig.projection.api</artifactId>
29
      <scope>compile</scope>
30
    </dependency>
31
    <dependency>
32
      <groupId>org.gvsig</groupId>
33
      <artifactId>org.gvsig.fmap.dal.api</artifactId>
34
      <scope>compile</scope>
35
    </dependency>
36
    
37
    <dependency>
38
      <groupId>org.gvsig</groupId>
39
      <artifactId>org.gvsig.fmap.dal.db.jdbc</artifactId>
40
      <scope>compile</scope>
41
    </dependency>
42

  
43
    <dependency>
44
      <groupId>org.gvsig</groupId>
45
      <artifactId>org.gvsig.fmap.dal.db.lib</artifactId>
46
      <scope>compile</scope>
47
    </dependency>
48
    
49
    <dependency>
50
      <groupId>org.gvsig</groupId>
51
      <artifactId>org.gvsig.fmap.dal.spi</artifactId>
52
      <scope>compile</scope>
53
    </dependency>
54
    <dependency>
55
      <groupId>org.gvsig</groupId>
56
      <artifactId>org.gvsig.metadata.lib.basic.api</artifactId>
57
      <scope>compile</scope>
58
    </dependency>
59
    <dependency>
60
      <groupId>org.gvsig</groupId>
61
      <artifactId>org.gvsig.fmap.geometry.api</artifactId>
62
      <scope>compile</scope>
63
    </dependency>
64
    <!--
65
    <dependency>
66
        <groupId>org.gvsig</groupId>
67
        <artifactId>org.gvsig.fmap.geometry.operation</artifactId>
68
        <scope>compile</scope>
69
    </dependency>
70
    -->
71
    <dependency>
72
      <groupId>org.gvsig</groupId>
73
      <artifactId>org.gvsig.timesupport.lib.api</artifactId>
74
      <scope>compile</scope>
75
    </dependency>  
76
    <dependency>
77
      <groupId>org.gvsig</groupId>
78
      <artifactId>org.gvsig.utils</artifactId>
79
      <scope>compile</scope>
80
    </dependency>
81
    <dependency>
82
      <groupId>org.postgresql</groupId>
83
      <artifactId>postgresql</artifactId>
84
      <scope>compile</scope>
85
    </dependency>
86
    <dependency>
87
        <groupId>org.apache.commons</groupId>
88
        <artifactId>commons-dbcp2</artifactId>
89
    </dependency>
90
    <dependency>
91
        <groupId>org.apache.commons</groupId>
92
        <artifactId>commons-pool2</artifactId>
93
    </dependency>
94
    <dependency>
95
      <groupId>commons-collections</groupId>
96
      <artifactId>commons-collections</artifactId>
97
      <scope>compile</scope>
98
    </dependency>
99

  
100

  
101
    <!-- TESTS -->
102
    <dependency>
103
      <groupId>org.gvsig</groupId>
104
      <artifactId>org.gvsig.tools.lib</artifactId>
105
      <type>test-jar</type>
106
      <scope>test</scope>
107
    </dependency>
108
    <dependency>
109
      <groupId>org.gvsig</groupId>
110
      <artifactId>org.gvsig.compat.se</artifactId>
111
      <scope>test</scope>
112
    </dependency>
113
    <dependency>
114
      <groupId>org.gvsig</groupId>
115
      <artifactId>org.gvsig.fmap.dal.impl</artifactId>
116
      <scope>test</scope>
117
    </dependency>
118
    <dependency>
119
      <groupId>org.gvsig</groupId>
120
      <artifactId>org.gvsig.fmap.dal.file.csv</artifactId>
121
      <scope>test</scope>
122
    </dependency>
123
    <dependency>
124
      <groupId>org.gvsig</groupId>
125
      <artifactId>org.gvsig.tools.util.impl</artifactId>
126
      <scope>test</scope>
127
    </dependency>
128
    <dependency>
129
      <groupId>org.gvsig</groupId>
130
      <artifactId>org.gvsig.tools.swing.impl</artifactId>
131
      <scope>test</scope>
132
    </dependency>
133
    <dependency>
134
      <groupId>org.gvsig</groupId>
135
      <artifactId>${org.gvsig.fmap.geometry.impl}</artifactId>
136
      <scope>test</scope>
137
    </dependency>    
138
    <dependency>
139
      <groupId>org.gvsig</groupId>
140
      <artifactId>org.gvsig.expressionevaluator.geometry.lib.impl</artifactId>
141
      <scope>test</scope>
142
    </dependency>    
143
    <dependency>
144
      <groupId>org.gvsig</groupId>
145
      <artifactId>${org.gvsig.proj.lib.impl}</artifactId>
146
      <scope>test</scope>
147
    </dependency>
148
    <dependency>
149
      <groupId>org.gvsig</groupId>
150
      <artifactId>org.gvsig.projection.cresques.impl</artifactId>
151
      <scope>test</scope>
152
    </dependency>
153
    <dependency>
154
      <groupId>org.gvsig</groupId>
155
      <artifactId>org.gvsig.timesupport.lib.impl</artifactId>
156
      <scope>test</scope>
157
    </dependency>
158
    <dependency>
159
      <groupId>org.gvsig</groupId>
160
      <artifactId>org.gvsig.metadata.lib.basic.impl</artifactId>
161
      <scope>test</scope>
162
    </dependency>      
163
    
164
    
165
    <dependency>
166
      <artifactId>junit</artifactId>
167
      <groupId>junit</groupId>
168
      <scope>test</scope>
169
    </dependency>
170
  </dependencies>
171

  
172
  <build>
173
    <plugins>
174

  
175
      <!-- Skip test execution ? -->
176
      <plugin>
177
        <groupId>org.apache.maven.plugins</groupId>
178
        <artifactId>maven-surefire-plugin</artifactId>
179
        <configuration>
180
          <skipTests>false</skipTests>
181
        </configuration>
182
      </plugin>
183
        
184
      <!-- Skip test compilation ? -->
185
      <plugin>
186
        <groupId>org.apache.maven.plugins</groupId>
187
        <artifactId>maven-compiler-plugin</artifactId>
188
        <executions>
189
          <execution>
190
            <id>default-testCompile</id>
191
            <phase>process-test-sources</phase>
192
            <goals>
193
              <goal>testCompile</goal>
194
            </goals>
195
            <configuration>
196
              <skip>false</skip>
197
            </configuration>
198
          </execution>
199
        </executions>
200
      </plugin>
201

  
202
      <!-- Ignore test execution failure ? -->
203
      <plugin>
204
        <groupId>org.apache.maven.plugins</groupId>
205
        <artifactId>maven-surefire-plugin</artifactId>
206
        <configuration>
207
          <testFailureIgnore>true</testFailureIgnore>
208
        </configuration>
209
      </plugin>
210

  
211
    </plugins>
212
  </build>
213

  
214
</project>
tags/org.gvsig.postgresql-2.0.173/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestUpdateTableStatistics.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

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

  
17
public class TestUpdateTableStatistics extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestUpdateTableStatistics.class);
20

  
21
  public TestUpdateTableStatistics(String testName) {
22
    super(testName);
23
  }
24

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

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

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

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("updateTableStatistics.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    UpdateTableStatisticsOperation updateTableStatistics = operations.createUpdateTableStatistics(
56
            table
57
    );
58
    
59
    List<String> SQLs = updateTableStatistics.getSQLs();
60
    assertEquals("UpdateTableStatistics num. SQLs", expectedSQLs.size(), SQLs.size());
61
    for (int i = 0; i < expectedSQLs.size(); i++) {
62
      assertEquals("UpdateTableStatistics SQL "+i, expectedSQLs.get(i), SQLs.get(i));
63
    }
64
  }
65

  
66
}
tags/org.gvsig.postgresql-2.0.173/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestAppend.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import java.util.ArrayList;
4
import java.util.List;
5
import junit.framework.TestCase;
6
import org.gvsig.fmap.dal.DataTypes;
7
import org.gvsig.fmap.dal.feature.Feature;
8
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
9
import org.gvsig.fmap.dal.feature.FeatureStore;
10
import org.gvsig.fmap.dal.feature.FeatureType;
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.AppendOperation;
16
import org.gvsig.postgresql.dal.TestUtils;
17
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
18
import org.slf4j.Logger;
19
import org.slf4j.LoggerFactory;
20

  
21
public class TestAppend extends TestCase {
22

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

  
25
  public TestAppend(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 testAppend() throws Exception {
44
    JDBCHelper helper = TestUtils.getJDBCHelper();
45
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
46
    OperationsFactory operations = helper.getOperations();
47

  
48
    List<String> expectedSQLs = TestUtils.getSQLs("append.sql");
49
    
50
    FeatureStore sourceStore = TestUtils.openSourceStore1();
51

  
52
    TableReference table = operations.createTableReference(
53
            "dbtest", 
54
            sqlbuilder.default_schema(), 
55
            "test", 
56
            null
57
    );
58
    FeatureType featureType = sourceStore.getDefaultFeatureType();
59
    AppendOperation append = operations.createAppend(
60
            table,
61
            featureType
62
    );
63
    append.begin();
64
    List<String> SQLs = new ArrayList<>();
65
    SQLs.addAll(append.getPreviousSQLs());
66
    SQLs.add( append.getSQL());
67
    SQLs.addAll(append.getPostSQLs());
68
    assertEquals("Append num SQLs", expectedSQLs.size(), SQLs.size());
69
    for (int i = 0; i < expectedSQLs.size(); i++) {
70
      assertEquals("Append SQL "+i, expectedSQLs.get(i), SQLs.get(i));
71
    }
72
    
73
    for (Feature sourceFeature : sourceStore.getFeatureSet()) {
74
      List<Object> parametersSQL = append.getSQLParameters(TestUtils.getFeatureProvider(sourceFeature));
75
      List<Object> expectedParameters = this.getExpectedparameters(sourceFeature);
76
      assertEquals("Append num. parameters", parametersSQL.size(), expectedParameters.size());
77
      for (int i = 0; i < expectedParameters.size(); i++) {
78
        assertEquals("Append parameter "+i, expectedParameters.get(i), parametersSQL.get(i));
79
      }
80
    }
81
    append.end();
82
  }
83

  
84
  private List<Object> getExpectedparameters(Feature sourceFeature) {
85
    FeatureType ft = sourceFeature.getType();
86
    List<Object> values = new ArrayList<>();
87
    for (FeatureAttributeDescriptor attr : ft) {
88
      Object v = sourceFeature.get(attr.getIndex());
89
      values.add(v);
90
      if( attr.getType()==DataTypes.GEOMETRY ) {
91
        String srs = attr.getSRS().getAbrev();
92
        values.add(Integer.parseInt(srs.split(":")[1]));
93
      }
94
    }
95
    return values;
96
  }
97

  
98
}
tags/org.gvsig.postgresql-2.0.173/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestFetchFeatureType.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

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

  
18
public class TestFetchFeatureType extends TestCase {
19

  
20
  private static final Logger LOGGER = LoggerFactory.getLogger(TestFetchFeatureType.class);
21

  
22
  public TestFetchFeatureType(String testName) {
23
    super(testName);
24
  }
25

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

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

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

  
45
    List<String> expectedSQLs = TestUtils.getSQLs("fetchFeatureType.sql");
46
    
47
    FeatureStore sourceStore = TestUtils.openSourceStore1();
48

  
49
    TableReference table = operations.createTableReference(
50
            "dbtest", 
51
            sqlbuilder.default_schema(), 
52
            "test", 
53
            null
54
    );
55
    FeatureType featureType = sourceStore.getDefaultFeatureType();
56
    FetchFeatureTypeOperation fetchFeatureType = operations.createFetchFeatureType(
57
            featureType.getEditable(),
58
            table,
59
            Collections.EMPTY_LIST,
60
            null, // "Geometry" 
61
            featureType.getDefaultSRS()
62
    );
63
    
64
    
65
    String retrieveFirstRowOfTableSQL = fetchFeatureType.getSQLToRetrieveFirstRowOfTable();
66
    String retrievePrimaryKeysFromInformationSchemaSQL = fetchFeatureType.getSQLToRetrievePrimaryKeysFromInformationSchema();
67

  
68
    assertEquals("FetchFeatureType first row SQL", expectedSQLs.get(0), retrieveFirstRowOfTableSQL);
69
    assertEquals("FetchFeatureType get primery keys SQL", expectedSQLs.get(1), retrievePrimaryKeysFromInformationSchemaSQL);
70
  }
71

  
72
}
tags/org.gvsig.postgresql-2.0.173/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestCount.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

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

  
17
public class TestCount extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestCount.class);
20

  
21
  public TestCount(String testName) {
22
    super(testName);
23
  }
24

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

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

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

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("count.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    CountOperation count = operations.createCount(
56
            featureType,
57
            table, 
58
            null, null
59
    );
60
    
61
    String sql = count.getSQL();
62
    assertEquals("Count SQL", expectedSQLs.get(0), sql);
63
  }
64

  
65
}
tags/org.gvsig.postgresql-2.0.173/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestResultSetForSetProvider.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

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

  
17
public class TestResultSetForSetProvider extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestResultSetForSetProvider.class);
20

  
21
  public TestResultSetForSetProvider(String testName) {
22
    super(testName);
23
  }
24

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

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

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

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("resultSetForSetProvider.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    ResultSetForSetProviderOperation resultSetForSetProvider = operations.createResultSetForSetProvider(
56
            table,
57
            null,
58
            null,
59
            null,
60
            featureType,
61
            featureType,
62
            0,
63
            0, 
64
            0
65
    );
66
    String sql = resultSetForSetProvider.getSQL();
67
    assertEquals("ResultSetForSetProvider SQL", expectedSQLs.get(0), sql);
68
  }
69

  
70
}
tags/org.gvsig.postgresql-2.0.173/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestFetchFeatureProviderByReference.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

  
3
import java.util.List;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.feature.Feature;
6
import org.gvsig.fmap.dal.feature.FeatureReference;
7
import org.gvsig.fmap.dal.feature.FeatureStore;
8
import org.gvsig.fmap.dal.feature.FeatureType;
9
import org.gvsig.fmap.dal.feature.impl.featurereference.FeatureReferenceFactory;
10
import org.gvsig.fmap.dal.feature.spi.FeatureReferenceProviderServices;
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.FetchFeatureProviderByReferenceOperation;
16
import org.gvsig.postgresql.dal.TestUtils;
17
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
18
import org.slf4j.Logger;
19
import org.slf4j.LoggerFactory;
20

  
21
public class TestFetchFeatureProviderByReference extends TestCase {
22

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

  
25
  public TestFetchFeatureProviderByReference(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 testFetchFeatureProviderByReference() throws Exception {
44
    JDBCHelper helper = TestUtils.getJDBCHelper();
45
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
46
    OperationsFactory operations = helper.getOperations();
47

  
48
    List<String> expectedSQLs = TestUtils.getSQLs("fetchFeatureProviderByReference.sql");
49
    
50
    FeatureStore sourceStore = TestUtils.openSourceStore1();
51
    TableReference table = operations.createTableReference(
52
            "dbtest", 
53
            sqlbuilder.default_schema(), 
54
            "test", 
55
            null
56
    );
57
    FeatureType featureType = sourceStore.getDefaultFeatureType();
58
    Feature feature = sourceStore.getFeatures().get(1);    
59
    FeatureReference reference = FeatureReferenceFactory.createReferencePKFromFeature(feature);
60
    
61
    FetchFeatureProviderByReferenceOperation fetchFeatureProviderByReference = operations.createFetchFeatureProviderByReference(
62
            (FeatureReferenceProviderServices) reference,
63
            featureType, 
64
            table
65
    );
66
    
67
    String sql = fetchFeatureProviderByReference.getSQL();
68
    assertEquals("FetchFeatureProviderByReference SQL", expectedSQLs.get(0), sql);
69
  }
70

  
71
}
tags/org.gvsig.postgresql-2.0.173/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestCalculateEnvelope.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

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

  
17
public class TestCalculateEnvelope extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestCalculateEnvelope.class);
20

  
21
  public TestCalculateEnvelope(String testName) {
22
    super(testName);
23
  }
24

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

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

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

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("calculateEnvelope.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    CalculateEnvelopeOfColumnOperation calculateEnvelope = operations.createCalculateEnvelopeOfColumn(
56
            featureType,
57
            table, 
58
            "Geometry",
59
            null,
60
            null, 
61
            featureType.getDefaultSRS()
62
    );
63
    
64
    String sql = calculateEnvelope.getSQL();
65
    assertEquals("CalculateEnvelope SQL", expectedSQLs.get(0), sql);
66
  }
67

  
68
}
tags/org.gvsig.postgresql-2.0.173/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestCreateTable.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

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

  
17
public class TestCreateTable extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestCreateTable.class);
20

  
21
  public TestCreateTable(String testName) {
22
    super(testName);
23
  }
24

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

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

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

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("createTable.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    CreateTableOperation createTable = operations.createTable(
56
            table,
57
            featureType,
58
            null,
59
            null
60
    );
61
    List<String> SQLs = createTable.getSQLs();
62
    assertEquals("CreateTable num. SQLs", expectedSQLs.size(), SQLs.size());
63
    for (int i = 0; i < expectedSQLs.size(); i++) {
64
      assertEquals("CreateTable SQL "+i, expectedSQLs.get(i), SQLs.get(i));
65
    }
66

  
67
  }
68

  
69
}
tags/org.gvsig.postgresql-2.0.173/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestDropTable.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

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

  
16
public class TestDropTable extends TestCase {
17

  
18
  private static final Logger LOGGER = LoggerFactory.getLogger(TestDropTable.class);
19

  
20
  public TestDropTable(String testName) {
21
    super(testName);
22
  }
23

  
24
  @Override
25
  protected void setUp() throws Exception {
26
    super.setUp();
27
    new DefaultLibrariesInitializer().fullInitialize();
28
  }
29

  
30
  @Override
31
  protected void tearDown() throws Exception {
32
    super.tearDown();
33
  }
34

  
35
  // TODO add test methods here. The name must begin with 'test'. For example:
36
  // public void testHello() {}
37
  
38
  public void testDropTable() throws Exception {
39
    JDBCHelper helper = TestUtils.getJDBCHelper();
40
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
41
    OperationsFactory operations = helper.getOperations();
42

  
43
    List<String> expectedSQLs = TestUtils.getSQLs("dropTable.sql");
44
    
45
    FeatureStore sourceStore = TestUtils.openSourceStore1();
46

  
47
    TableReference table = operations.createTableReference(
48
            "dbtest", 
49
            sqlbuilder.default_schema(), 
50
            "test", 
51
            null
52
    );
53
    DropTableOperation dropTable = operations.createDropTable(
54
            table
55
    );
56
    List<String> SQLs = dropTable.getSQLs();
57
    assertEquals("DropTable num. SQLs", expectedSQLs.size(), SQLs.size());
58
    for (int i = 0; i < expectedSQLs.size(); i++) {
59
      assertEquals("DropTable SQL "+i, expectedSQLs.get(i), SQLs.get(i));
60
    }
61
  }
62

  
63
}
tags/org.gvsig.postgresql-2.0.173/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestTableIsEmpty.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

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

  
17
public class TestTableIsEmpty extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestTableIsEmpty.class);
20

  
21
  public TestTableIsEmpty(String testName) {
22
    super(testName);
23
  }
24

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

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

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

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("tableIsEmpty.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    TableIsEmptyOperation tableIsEmpty = operations.createTableIsEmpty(
56
            featureType,
57
            table,
58
            null, 
59
            null
60
    );
61
    
62
    String sql = tableIsEmpty.getSQL();
63
    assertEquals("TableIsEmpty SQL", expectedSQLs.get(0), sql);
64
  }
65

  
66
}
tags/org.gvsig.postgresql-2.0.173/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/operations/sql/TestPerformChanges.java
1
package org.gvsig.postgresql.dal.operations.sql;
2

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

  
23
public class TestPerformChanges extends TestCase {
24

  
25
  private static final Logger LOGGER = LoggerFactory.getLogger(TestPerformChanges.class);
26

  
27
  public TestPerformChanges(String testName) {
28
    super(testName);
29
  }
30

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

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

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

  
50
    List<String> expectedSQLs = TestUtils.getSQLs("performChanges.sql");
51
    
52
    FeatureStore sourceStore = TestUtils.openSourceStore1();
53

  
54
    TableReference table = operations.createTableReference(
55
            "dbtest", 
56
            sqlbuilder.default_schema(), 
57
            "test", 
58
            null
59
    );
60
    FeatureType featureType = sourceStore.getDefaultFeatureType();
61
    
62
    
63
    FeatureTypeChanged featureTypeChanged = new FeatureTypeChanged() {
64
      @Override
65
      public FeatureType getSource() {
66
        EditableFeatureType ft = DALLocator.getDataManager().createFeatureType();
67
        EditableFeatureAttributeDescriptor id = ft.add("ID", DataTypes.INT);
68
        id.copyFrom(featureType.getAttributeDescriptor("ID"));
69
        return ft;
70
      }
71

  
72
      @Override
73
      public FeatureType getTarget() {
74
        return featureType;
75
      }
76
    };
77
    List<FeatureTypeChanged> featureTypesChangeds = Collections.singletonList(featureTypeChanged);
78
    
79
    PerformChangesOperation performChanges = operations.createPerformChanges(
80
            table, 
81
            sourceStore.getDefaultFeatureType(),
82
            null, 
83
            null, 
84
            null, 
85
            featureTypesChangeds.iterator()
86
    );
87
    String insertSQL = performChanges.getInsertSQL();
88
    String deleteSQL = performChanges.getDeleteSQL();
89
    String updateSQL = performChanges.getUpdateSQL();
90
    List<String> updateTableSQLs = performChanges.getUpdateTableSQLs();
91

  
92
    assertEquals("Insert SQL", expectedSQLs.get(0), insertSQL);
93
    assertEquals("Delete SQL", expectedSQLs.get(1), deleteSQL);
94
    assertEquals("Update SQL", expectedSQLs.get(2), updateSQL);
95
    assertEquals("UpdateTable num. SQLs", expectedSQLs.size()-3, updateTableSQLs.size());
96
    for (int i = 0; i < updateTableSQLs.size(); i++) {
97
      assertEquals("UpdateTable SQL "+i, expectedSQLs.get(i+3), updateTableSQLs.get(i));
98
    }
99
    
100
    // FIXME: El ALTER TABLE de una columna geometria no funciona
101
  }
102

  
103
}
tags/org.gvsig.postgresql-2.0.173/org.gvsig.postgresql.provider/src/test/java/org/gvsig/postgresql/dal/PostgreSQLBuilderTest.java
1
package org.gvsig.postgresql.dal;
2

  
3
import junit.framework.TestCase;
4
import org.apache.commons.lang3.ArrayUtils;
5
import org.cresques.cts.IProjection;
6
import org.gvsig.expressionevaluator.ExpressionBuilder;
7
import org.gvsig.expressionevaluator.GeometryExpressionBuilder;
8
import org.gvsig.fmap.crs.CRSFactory;
9
import org.gvsig.fmap.dal.SQLBuilder;
10
import org.gvsig.fmap.dal.SQLBuilder.Privilege;
11
import org.gvsig.fmap.dal.feature.spi.SQLBuilderBase;
12
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
13
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.OperationsFactoryBase;
14
import org.gvsig.fmap.geom.DataTypes;
15
import org.gvsig.fmap.geom.Geometry;
16
import org.gvsig.fmap.geom.GeometryLocator;
17
import org.gvsig.fmap.geom.GeometryManager;
18
import org.gvsig.fmap.geom.primitive.Polygon;
19
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
20

  
21
public class PostgreSQLBuilderTest extends TestCase {
22
    
23
    public PostgreSQLBuilderTest(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
    private SQLBuilder createSQLBuilder() {
39
        return new PostgreSQLBuilder(new PostgreSQLHelper(new FakePostgreSQLConnectionParameters()));
40
    }
41
    
42
    public void testCalulateEnvelopeOfColumn() throws Exception {
43
        
44
        TableReference table = new OperationsFactoryBase.DefaultTableReference("master","dbo","test1", null);
45
        String columnName = "the_geom";
46
        
47
        SQLBuilder sqlbuilder = createSQLBuilder();
48
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
49
        
50
        sqlbuilder.select().column().value(
51
            expbuilder.as_geometry(
52
                expbuilder.ST_ExtentAggregate(
53
                        expbuilder.column(columnName)
54
                )
55
            )
56
        );
57
        //sqlbuilder.select().group_by(expbuilder.column(columnName));
58
        sqlbuilder.select().from().table()
59
                .database(table.getDatabase())
60
                .schema(table.getSchema())
61
                .name(table.getTable());
62
        sqlbuilder.select().from().subquery(table.getSubquery());
63

  
64
        sqlbuilder.select().where().and(        
65
            expbuilder.not_is_null(expbuilder.column(columnName))
66
        );
67
        
68
        System.out.println("# Test:: testCalulateEnvelopeOfColumn");
69
        System.out.println("# SQL:: " + sqlbuilder.toString());
70
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
71
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
72
        assertEquals(
73
                "SELECT ST_AsBinary(ST_Extent(\"the_geom\")) FROM \"master\".\"dbo\".\"test1\" WHERE ( (\"the_geom\") IS NOT NULL )",
74
                sqlbuilder.toString()
75
        );
76
        assertEquals(
77
                "[the_geom]",
78
                ArrayUtils.toString(sqlbuilder.variables_names())
79
        );
80
        assertEquals(
81
                "[]",
82
                ArrayUtils.toString(sqlbuilder.parameters_names())
83
        );
84
    }
85
 
86
    public void testCalulateEnvelope() throws Exception {
87
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
88
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
89
        
90
        Polygon limit = geometryManager.createPolygon(Geometry.SUBTYPES.GEOM2D);
91
        limit.addVertex(0, 0);
92
        limit.addVertex(0, 100);
93
        limit.addVertex(100, 100);
94
        limit.addVertex(100, 0);
95
        limit.addVertex(0, 0);
96
        
97
        SQLBuilder sqlbuilder = createSQLBuilder();
98
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
99
        
100
        sqlbuilder.select().column().value(
101
            expbuilder.as_geometry(
102
              expbuilder.ST_ExtentAggregate(
103
                expbuilder.column("the_geom")
104
              )
105
            )
106
        ).as("envelope");
107
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
108
        sqlbuilder.select().where().set(
109
            expbuilder.ST_Intersects(
110
                expbuilder.ST_Envelope(
111
                    expbuilder.column("the_geom")
112
                ),
113
                expbuilder.geometry(limit, proj)
114
            )
115
        );
116
        sqlbuilder.select().where().and(
117
                expbuilder.custom("x = 27")
118
        );
119
        
120
        System.out.println("# Test:: testCalulateEnvelope");
121
        System.out.println("# SQL:: " + sqlbuilder.toString());
122
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
123
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
124
        assertEquals(
125
                "SELECT ST_AsBinary(ST_Extent(\"the_geom\")) AS \"envelope\" FROM \"master\".\"dbo\".\"test1\" WHERE (ST_Intersects((ST_Envelope(\"the_geom\")), (ST_GeomFromWKB(('\\x000000000300000001000000050000000000000000000000000000000000000000000000004059000000000000405900000000000040590000000000004059000000000000000000000000000000000000000000000000000000000000'::bytea), (4326)))) AND x = 27)",
126
                sqlbuilder.toString()
127
        );
128
        assertEquals(
129
                "[the_geom]",
130
                ArrayUtils.toString(sqlbuilder.variables_names())
131
        );
132
        assertEquals(
133
                "[]",
134
                ArrayUtils.toString(sqlbuilder.parameters_names())
135
        );
136
    }
137

  
138
    public void testCount() throws Exception {
139
        SQLBuilder sqlbuilder = createSQLBuilder();
140
        ExpressionBuilder expbuilder = sqlbuilder.expression();
141
        
142
        sqlbuilder.select().column().value(sqlbuilder.count().all());
143
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
144
        sqlbuilder.select().from().subquery(null);
145
        sqlbuilder.select().where().set( expbuilder.custom("pp = 200"));
146

  
147
        System.out.println("# Test:: testCount");
148
        System.out.println("# SQL:: " + sqlbuilder.toString());
149
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
150
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
151

  
152
        //# Test:: testCount
153
        //# SQL:: SELECT COUNT(*) FROM "test1" WHERE pp = 200
154
        //# Variables:: []
155
        //# Parametros:: []
156

  
157
        assertEquals(
158
                "SELECT COUNT(*) FROM \"master\".\"dbo\".\"test1\" WHERE pp = 200",
159
                sqlbuilder.toString()
160
        );
161
        assertEquals(
162
                "[]",
163
                ArrayUtils.toString(sqlbuilder.variables_names())
164
        );
165
        assertEquals(
166
                "[]",
167
                ArrayUtils.toString(sqlbuilder.parameters_names())
168
        );
169
    }
170
    
171
    public void testCreateTable() throws Exception {
172
        SQLBuilder sqlbuilder = createSQLBuilder();
173
        ExpressionBuilder expbuilder = sqlbuilder.expression();
174

  
175
        sqlbuilder.create_table().table().database("master").schema("dbo").name("test1");
176
        sqlbuilder.create_table().add_column(
177
                "name",
178
                DataTypes.STRING,
179
                45,
180
                0,
181
                0,
182
                false,
183
                false,
184
                true,
185
                false,
186
                null
187
        );
188
        sqlbuilder.create_table().add_column(
189
                "id",
190
                DataTypes.INT,
191
                0,
192
                0,
193
                0,
194
                true,
195
                false,
196
                false,
197
                true,
198
                0
199
        );
200
        sqlbuilder.create_table().add_column(
201
                "geom",
202
                DataTypes.GEOMETRY,
203
                0,
204
                0,
205
                0,
206
                false,
207
                false,
208
                true,
209
                false,
210
                null
211
        );
212

  
213
        
214
        // CREATE TABLE "test1" ("name" VARCHAR(45) DEFAULT NULL, "id" INTEGER PRIMARY KEY AUTO_INCREMENT DEFAULT '0' NOT NULL, "geom" GEOMETRY ); ALTER TABLE "test1" ADD CONSTRAINT IF NOT EXISTS "constraint_test1_geom_dim" CHECK ST_CoordDim("geom") = 2
215
        System.out.println("# Test:: testCreateTable");
216
        System.out.println("# SQL:: " + sqlbuilder.toString());
217
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
218
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
219
        assertEquals(
220
                "CREATE TABLE \"master\".\"dbo\".\"test1\" (\"name\" VARCHAR(45) DEFAULT NULL NULL, \"id\"  SERIAL PRIMARY KEY ); SELECT AddGeometryColumn('dbo' , 'test1' , 'geom', null , 'GEOMETRY' , 2, TRUE)",
221
                sqlbuilder.toString()
222
        );
223
        assertEquals(
224
                "[]",
225
                ArrayUtils.toString(sqlbuilder.variables_names())
226
        );
227
        assertEquals(
228
                "[]",
229
                ArrayUtils.toString(sqlbuilder.parameters_names())
230
        );
231
    }
232

  
233
    public void testDropTable() throws Exception {
234
        SQLBuilder sqlbuilder = createSQLBuilder();
235
        ExpressionBuilder expbuilder = sqlbuilder.expression();
236
        
237
        sqlbuilder.drop_table().table().database("master").schema("dbo").name("test1");
238

  
239
        // DROP TABLE "test1"
240
        
241
        System.out.println("# Test:: testDropTable");
242
        System.out.println("# SQL:: " + sqlbuilder.toString());
243
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
244
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
245
        assertEquals(
246
                "DROP TABLE \"master\".\"dbo\".\"test1\"",
247
                sqlbuilder.toString()
248
        );
249
        assertEquals(
250
                "[]",
251
                ArrayUtils.toString(sqlbuilder.variables_names())
252
        );
253
        assertEquals(
254
                "[]",
255
                ArrayUtils.toString(sqlbuilder.parameters_names())
256
        );
257
    }
258
    
259
    public void testFetchFeatureProviderByReference() throws Exception {
260
        SQLBuilder sqlbuilder = new SQLBuilderBase();
261
        ExpressionBuilder expbuilder = sqlbuilder.expression();
262
        
263
        String value = "yoyo";
264
        sqlbuilder.select().column().name("name");
265
        sqlbuilder.select().column().name("id");
266
        sqlbuilder.select().column().name("geom").as_geometry();
267
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
268
        sqlbuilder.select().where().set(
269
            expbuilder.eq(
270
                expbuilder.column("name"),
271
                expbuilder.parameter(value).as_constant()
272
            )
273
        );
274
        sqlbuilder.select().limit(1);
275

  
276
        // SELECT "name", "id", ST_AsBinary("geom") FROM "master"."dbo"."test1" WHERE ( ("name") = (?) ) LIMIT 1
277

  
278
        System.out.println("# Test:: testFetchFeatureProviderByReference");
279
        System.out.println("# SQL:: " + sqlbuilder.toString());
280
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
281
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
282
        assertEquals(
283
                "SELECT \"name\", \"id\", ST_AsBinary(\"geom\") FROM \"master\".\"dbo\".\"test1\" WHERE ( (\"name\") = (?) ) LIMIT 1",
284
                sqlbuilder.toString()
285
        );
286
        assertEquals(
287
                "[geom, id, name]",
288
                ArrayUtils.toString(sqlbuilder.variables_names())
289
        );
290
        assertEquals(
291
                "['yoyo']",
292
                ArrayUtils.toString(sqlbuilder.parameters_names())
293
        );
294
    }
295
    
296
    public void testFetchFeatureType() throws Exception {
297
        SQLBuilder sqlbuilder = createSQLBuilder();
298
        ExpressionBuilder expbuilder = sqlbuilder.expression();
299

  
300
        sqlbuilder.select().column().all();
301
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
302
        sqlbuilder.select().limit(1);
303

  
304
        System.out.println("# Test:: testFetchFeatureType");
305
        System.out.println("# SQL:: " + sqlbuilder.toString());
306
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
307
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
308
        
309
        //# Test:: testFetchFeatureType
310
        //# SQL:: SELECT * FROM "test1" LIMIT 1
311
        //# Variables:: []
312
        //# Parametros:: []        
313
        
314
        assertEquals(
315
                "SELECT * FROM \"master\".\"dbo\".\"test1\" LIMIT 1",
316
                sqlbuilder.toString()
317
        );
318
        assertEquals(
319
                "[]",
320
                ArrayUtils.toString(sqlbuilder.variables_names())
321
        );
322
        assertEquals(
323
                "[]",
324
                ArrayUtils.toString(sqlbuilder.parameters_names())
325
        );
326
    }
327
        
328
    public void testPerformDeletes() throws Exception {
329
        SQLBuilder sqlbuilder = createSQLBuilder();
330
        ExpressionBuilder expbuilder = sqlbuilder.expression();
331

  
332
        sqlbuilder.delete().table().database("master").schema("dbo").name("test1");
333
        sqlbuilder.delete().where().and(
334
            expbuilder.eq( 
335
                expbuilder.column("id1"),
336
                expbuilder.parameter("id1").as_variable()
337
            )
338
        );
339
        sqlbuilder.delete().where().and(
340
            expbuilder.eq( 
341
                expbuilder.column("id2"),
342
                expbuilder.parameter("id2").as_variable()
343
            )
344
        );
345

  
346
        // DELETE FROM "test1" WHERE ( ("id1") = (?) ) AND ( ("id2") = (?) )
347

  
348
        System.out.println("# Test:: testPerformDeletes");
349
        System.out.println("# SQL:: " + sqlbuilder.toString());
350
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
351
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
352
        assertEquals(
353
                "DELETE FROM \"master\".\"dbo\".\"test1\" WHERE (( (\"id1\") = (?) ) AND ( (\"id2\") = (?) ))",
354
                sqlbuilder.toString()
355
        );
356
        assertEquals(
357
                "[id1, id2]",
358
                ArrayUtils.toString(sqlbuilder.variables_names())
359
        );
360
        assertEquals(
361
                "[\"id1\", \"id2\"]",
362
                ArrayUtils.toString(sqlbuilder.parameters_names())
363
        );
364
    }
365

  
366
    public void testPerformInserts1() throws Exception {
367
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
368

  
369
        SQLBuilder sqlbuilder = createSQLBuilder();
370
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
371

  
372
        sqlbuilder.insert().table().database("master").schema("dbo").name("test1");
373
        sqlbuilder.insert().column().name("id").with_value(expbuilder.parameter("id"));
374
        sqlbuilder.insert().column().name("name").with_value(expbuilder.parameter("name"));
375
        sqlbuilder.insert().column().name("geom").with_value(expbuilder.parameter("geom").as_geometry_variable().srs(proj));
376
        
377
        System.out.println("# Test:: testPerformInserts1");
378
        System.out.println("# SQL:: " + sqlbuilder.toString());
379
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
380
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
381
        assertEquals(
382
                "INSERT INTO \"master\".\"dbo\".\"test1\" ( \"id\", \"name\", \"geom\" ) VALUES ( ?, ?, ST_GeomFromWKB((?), (4326)) )",
383
                sqlbuilder.toString()
384
        );
385
        assertEquals(
386
                "[geom, id, name]",
387
                ArrayUtils.toString(sqlbuilder.variables_names())
388
        );
389
        assertEquals(
390
                "[\"id\", \"name\", \"geom\"]",
391
                ArrayUtils.toString(sqlbuilder.parameters_names())
392
        );
393
    }
394

  
395
    public void testPerformInserts2() throws Exception {
396
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
397

  
398
        SQLBuilder sqlbuilder = createSQLBuilder();
399
        GeometryExpressionBuilder expbuilder = sqlbuilder.expression();
400

  
401
        sqlbuilder.insert().table().database("master").schema("dbo").name("test1");
402
        sqlbuilder.insert().column().name("id").with_value(expbuilder.parameter("id"));
403
        sqlbuilder.insert().column().name("name").with_value(expbuilder.parameter("name"));
404
        sqlbuilder.insert().column().name("geom").with_value(expbuilder.parameter("geom").as_geometry_variable().srs(proj));
405
        
406
        System.out.println("# Test:: testPerformInserts2");
407
        System.out.println("# SQL:: " + sqlbuilder.toString());
408
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
409
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
410
        assertEquals(
411
                "INSERT INTO \"master\".\"dbo\".\"test1\" ( \"id\", \"name\", \"geom\" ) VALUES ( ?, ?, ST_GeomFromWKB((?), (4326)) )",
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff