Skip to content

Commit a11db8b

Browse files
rldhontnyalldawson
authored andcommittedMay 5, 2018
[Oracle][Tests] Enhance Point convertion test
Instead of using 'SDO_UTIL.FROM_WKTGEOMETRY' to generate `SDO_GEOMETRY` object for Point, the `testdata` generate Point and MultiPoint with `SDO_POINT_TYPE` or `SDO_ELEM_INFO_ARRAY` and `SDO_ORDINATE_ARRAY`. With this way of creating Point and MultiPoint, we can test the way Point and MultiPoint are converting to WKB.
1 parent 684b367 commit a11db8b

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed
 

‎tests/src/python/test_provider_oracle.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ def setUpClass(cls):
4949

5050
cls.conn = QSqlDatabase.addDatabase('QOCISPATIAL', "oracletest")
5151
cls.conn.setDatabaseName('10.0.0.2/orcl')
52+
if 'QGIS_ORACLETEST_DBNAME' in os.environ:
53+
cls.conn.setDatabaseName('QGIS_ORACLETEST_DBNAME')
5254
cls.conn.setUserName('QGIS')
5355
cls.conn.setPassword('qgis')
5456
assert cls.conn.open()
@@ -188,6 +190,10 @@ def testPoints(self):
188190
self.assertEqual(features[1].geometry().asWkt(), 'PointZ (1 2 3)')
189191
self.assertEqual(features[2].geometry().asWkt(), 'MultiPointZ ((1 2 3),(4 5 6))')
190192
self.assertEqual(features[3].geometry().asWkt(), 'MultiPoint ((1 2),(3 4))')
193+
self.assertEqual(features[4].geometry().asWkt(), 'MultiPointZ ((1 2 3),(4 5 6))')
194+
self.assertEqual(features[5].geometry().asWkt(), 'Point (1 2)')
195+
self.assertEqual(features[6].geometry().asWkt(), 'Point (3 4)')
196+
self.assertEqual(features[7].geometry().asWkt(), 'Point (5 6)')
191197

192198
def testCurves(self):
193199
vl = QgsVectorLayer('%s table="QGIS"."LINE_DATA" (GEOM) srid=4326 type=LINESTRING sql=' %

‎tests/testdata/provider/testdata_oracle.sql

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,21 @@ INSERT INTO QGIS.SOME_POLY_DATA ("pk", GEOM)
1919
UNION ALL SELECT 3, SDO_GEOMETRY( 2003,4326,NULL, SDO_ELEM_INFO_ARRAY(1,1003,1), SDO_ORDINATE_ARRAY(-68.4,75.8 , -67.5,72.6 , -68.6,73.7 , -70.2,72.9 , -68.4,75.8)) from dual
2020
UNION ALL SELECT 4, NULL from dual;
2121

22+
INSERT INTO user_sdo_geom_metadata (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES ( 'SOME_POLY_DATA', 'GEOM', sdo_dim_array(sdo_dim_element('X',-80,-55,0.005),sdo_dim_element('Y',65,85,0.005)),4326);
23+
24+
CREATE INDEX some_poly_data_spatial_idx ON QGIS.SOME_POLY_DATA(GEOM) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
25+
26+
2227
CREATE TABLE QGIS.POINT_DATA ( "pk" INTEGER PRIMARY KEY, GEOM SDO_GEOMETRY);
2328
INSERT INTO QGIS.POINT_DATA ("pk", GEOM)
24-
SELECT 1, SDO_UTIL.FROM_WKTGEOMETRY('POINT(1 2)') from dual
25-
UNION ALL SELECT 2, SDO_UTIL.FROM_WKTGEOMETRY('POINT(1 2 3)') from dual
26-
UNION ALL SELECT 3, SDO_UTIL.FROM_WKTGEOMETRY('MULTIPOINT(1 2 3, 4 5 6)') from dual
27-
UNION ALL SELECT 4, SDO_UTIL.FROM_WKTGEOMETRY('MULTIPOINT(1 2, 3 4)') from dual;
29+
SELECT 1, SDO_GEOMETRY( 2001,4326,SDO_POINT_TYPE(1, 2, NULL), NULL, NULL) from dual
30+
UNION ALL SELECT 2, SDO_GEOMETRY( 3001,4326,SDO_POINT_TYPE(1, 2, 3), NULL, NULL) from dual
31+
UNION ALL SELECT 3, SDO_GEOMETRY( 3005,4326,NULL, sdo_elem_info_array (1,1,1, 4,1,1), sdo_ordinate_array (1,2,3, 4,5,6)) from dual
32+
UNION ALL SELECT 4, SDO_GEOMETRY( 2005,4326,NULL, sdo_elem_info_array (1,1,1, 3,1,1), sdo_ordinate_array (1,2, 3,4)) from dual
33+
UNION ALL SELECT 5, SDO_GEOMETRY( 3005,4326,NULL, sdo_elem_info_array (1,1,2), sdo_ordinate_array (1,2,3, 4,5,6)) from dual
34+
UNION ALL SELECT 6, SDO_GEOMETRY( 2001,4326,NULL, sdo_elem_info_array (1,1,1), sdo_ordinate_array (1,2)) from dual
35+
UNION ALL SELECT 7, SDO_GEOMETRY( 2001,4326, SDO_POINT_TYPE(3, 4, NULL), NULL, NULL) from dual
36+
UNION ALL SELECT 8, SDO_GEOMETRY( 2001,4326,NULL, sdo_elem_info_array (1,1,1), sdo_ordinate_array (5,6)) from dual;
2837

2938
CREATE TABLE QGIS.LINE_DATA ( "pk" INTEGER PRIMARY KEY, GEOM SDO_GEOMETRY);
3039
INSERT INTO QGIS.LINE_DATA ("pk", GEOM)
@@ -52,12 +61,6 @@ INSERT INTO QGIS.POLY_DATA ("pk", GEOM)
5261
UNION ALL SELECT 11, SDO_UTIL.FROM_WKTGEOMETRY('CurvePolygon(CompoundCurve ((-1 -5, 1 2),CircularString (1 2, 5 4, 7 2.20, 10 0.1, 13 4),(13 4, 17 -6),CircularString (17 -6, 5 -7, -1 -5)))') from dual
5362
UNION ALL SELECT 12, SDO_UTIL.FROM_WKTGEOMETRY('MultiSurface (CURVEPOLYGON(CIRCULARSTRING(1 3, 3 5, 4 7, 7 3, 1 3)), CURVEPOLYGON(CIRCULARSTRING(11 3, 13 5, 14 7, 17 3, 11 3)))') from dual;
5463

55-
56-
INSERT INTO user_sdo_geom_metadata (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES ( 'SOME_POLY_DATA', 'GEOM', sdo_dim_array(sdo_dim_element('X',-80,-55,0.005),sdo_dim_element('Y',65,85,0.005)),4326);
57-
58-
CREATE INDEX some_poly_data_spatial_idx ON QGIS.SOME_POLY_DATA(GEOM) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
59-
60-
6164
CREATE TABLE QGIS.DATE_TIMES ( "id" INTEGER PRIMARY KEY, "date_field" DATE, "datetime_field" TIMESTAMP );
6265

6366
INSERT INTO QGIS.DATE_TIMES ("id", "date_field", "datetime_field" ) VALUES (1, DATE '2004-03-04', TIMESTAMP '2004-03-04 13:41:52' );

0 commit comments

Comments
 (0)
Please sign in to comment.