mirror of
https://github.com/xbgmsharp/postgsail.git
synced 2025-09-17 11:17:46 +00:00
Add unit tests for MobilityDB support
This commit is contained in:
81
tests/sql/mobilitydb.sql
Normal file
81
tests/sql/mobilitydb.sql
Normal file
@@ -0,0 +1,81 @@
|
||||
---------------------------------------------------------------------------
|
||||
-- Listing
|
||||
--
|
||||
|
||||
-- List current database
|
||||
select current_database();
|
||||
|
||||
-- connect to the DB
|
||||
\c signalk
|
||||
|
||||
-- output display format
|
||||
\x on
|
||||
|
||||
-- Assign vessel_id var
|
||||
SELECT v.vessel_id as "vessel_id_kapla" FROM auth.vessels v WHERE v.owner_email = 'demo+kapla@openplotter.cloud' \gset
|
||||
SELECT v.vessel_id as "vessel_id_aava" FROM auth.vessels v WHERE v.owner_email = 'demo+aava@openplotter.cloud' \gset
|
||||
|
||||
-- user_role
|
||||
SET ROLE user_role;
|
||||
-- Switch user as aava
|
||||
SELECT set_config('vessel.id', :'vessel_id_aava', false) IS NOT NULL as vessel_id;
|
||||
|
||||
-- Update notes
|
||||
\echo 'Add a note for an entry from a trip'
|
||||
-- Get original value, should be empty
|
||||
SELECT numInstants(trip), valueAtTimestamp(trip_notes,timestampN(trip,14)) from api.logbook where id = 3;
|
||||
-- Create the string
|
||||
SELECT concat('["fishing"@', timestampN(trip,14),',""@',timestampN(trip,15),']') as to_be_update FROM api.logbook where id = 3 \gset
|
||||
--\echo :to_be_update
|
||||
-- Update the notes
|
||||
SELECT api.update_trip_notes_fn(3, :'to_be_update');
|
||||
-- Compare with previous value, should include "fishing"
|
||||
SELECT valueAtTimestamp(trip_notes,timestampN(trip,14)) from api.logbook where id = 3;
|
||||
|
||||
-- Delete notes
|
||||
\echo 'Delete an entry from a trip'
|
||||
-- Get original value, should be 45
|
||||
SELECT numInstants(trip), jsonb_array_length(api.export_logbook_geojson_point_trip_fn(id)->'features') from api.logbook where id = 3;
|
||||
-- Extract the timestamps of the invalid coords
|
||||
--SELECT timestampN(trip,14) as "to_be_delete" FROM api.logbook where id = 3 \gset
|
||||
SELECT concat('[', timestampN(trip,13),',',timestampN(trip,14),')') as to_be_delete FROM api.logbook where id = 3 \gset
|
||||
--\echo :to_be_delete
|
||||
-- Delete the entry for all trip sequence
|
||||
SELECT api.delete_trip_entry_fn(3, :'to_be_delete');
|
||||
-- Compare with previous value, should be 44
|
||||
SELECT numInstants(trip), jsonb_array_length(api.export_logbook_geojson_point_trip_fn(id)->'features') from api.logbook where id = 3;
|
||||
|
||||
-- Export PostGIS geography from a trip
|
||||
\echo 'Export PostGIS geography from trajectory'
|
||||
SELECT ST_IsValid(trajectory(trip)::geometry) IS TRUE FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
||||
|
||||
-- Export GeoJSON from a trip
|
||||
\echo 'Export GeoJSON with properties from a trip'
|
||||
SELECT jsonb_array_length(api.export_logbook_geojson_point_trip_fn(3)->'features');
|
||||
|
||||
-- Export GPX from a trip
|
||||
\echo 'Export GPX from a trip'
|
||||
SELECT api.export_logbook_gpx_trip_fn(3) IS NOT NULL;
|
||||
|
||||
-- Export KML from a trip
|
||||
\echo 'Export KML from a trip'
|
||||
SELECT api.export_logbook_kml_trip_fn(3) IS NOT NULL;
|
||||
|
||||
-- Switch user as kapla
|
||||
SELECT set_config('vessel.id', :'vessel_id_kapla', false) IS NOT NULL as vessel_id;
|
||||
|
||||
-- Export timelapse as Geometry LineString from a trip
|
||||
\echo 'Export timelapse as Geometry LineString from a trip'
|
||||
SELECT api.export_logbooks_geojson_linestring_trips_fn(1,2) FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
||||
|
||||
-- Export timelapse as Geometry Point from a trip
|
||||
\echo 'Export timelapse as Geometry Point from a trip'
|
||||
SELECT api.export_logbooks_geojson_point_trips_fn(1,2) IS NOT NULL FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
||||
|
||||
-- Export GPX from trips
|
||||
\echo 'Export GPX from trips'
|
||||
SELECT api.export_logbooks_gpx_trips_fn(1,2) IS NOT NULL FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
||||
|
||||
-- Export KML from trips
|
||||
\echo 'Export KML from trips'
|
||||
SELECT api.export_logbooks_kml_trips_fn(1,2) IS NOT NULL FROM api.logbook WHERE vessel_id = current_setting('vessel.id', false);
|
71
tests/sql/mobilitydb.sql.output
Normal file
71
tests/sql/mobilitydb.sql.output
Normal file
@@ -0,0 +1,71 @@
|
||||
current_database
|
||||
------------------
|
||||
signalk
|
||||
(1 row)
|
||||
|
||||
You are now connected to database "signalk" as user "username".
|
||||
Expanded display is on.
|
||||
SET
|
||||
-[ RECORD 1 ]
|
||||
vessel_id | t
|
||||
|
||||
Add a note for an entry from a trip
|
||||
-[ RECORD 1 ]----+---
|
||||
numinstants | 45
|
||||
valueattimestamp |
|
||||
|
||||
-[ RECORD 1 ]--------+-
|
||||
update_trip_notes_fn |
|
||||
|
||||
-[ RECORD 1 ]----+--------
|
||||
valueattimestamp | fishing
|
||||
|
||||
Delete an entry from a trip
|
||||
-[ RECORD 1 ]------+---
|
||||
numinstants | 45
|
||||
jsonb_array_length | 45
|
||||
|
||||
-[ RECORD 1 ]--------+-
|
||||
delete_trip_entry_fn |
|
||||
|
||||
-[ RECORD 1 ]------+---
|
||||
numinstants | 44
|
||||
jsonb_array_length | 44
|
||||
|
||||
Export PostGIS geography from trajectory
|
||||
-[ RECORD 1 ]
|
||||
?column? | t
|
||||
-[ RECORD 2 ]
|
||||
?column? | t
|
||||
|
||||
Export GeoJSON with properties from a trip
|
||||
-[ RECORD 1 ]------+---
|
||||
jsonb_array_length | 44
|
||||
|
||||
Export GPX from a trip
|
||||
-[ RECORD 1 ]
|
||||
?column? | t
|
||||
|
||||
Export KML from a trip
|
||||
-[ RECORD 1 ]
|
||||
?column? | t
|
||||
|
||||
-[ RECORD 1 ]
|
||||
vessel_id | t
|
||||
|
||||
Export timelapse as Geometry LineString from a trip
|
||||
-[ RECORD 1 ]-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
export_logbooks_geojson_linestring_trips_fn | {"type": "FeatureCollection", "features": [{"type": "Feature", "geometry": {"type": "LineString", "coordinates": [[23.530866667, 60.077666667], [23.52355, 60.07065], [23.515866667, 60.0637], [23.507866667, 60.056716667], [23.500533333, 60.04915], [23.493, 60.041633333], [23.485466667, 60.033983333], [23.479033333, 60.026216667], [23.47295, 60.01835], [23.46745, 60.01045], [23.461033333, 60.003516667], [23.45415, 59.99755], [23.445683333, 59.99235], [23.438766667, 59.989266667], [23.435116667, 59.987866667], [23.43165, 59.986333333], [23.4292, 59.984833333], [23.432566667, 59.9862], [23.43375, 59.987266667], [23.431566667, 59.98615], [23.4307, 59.98565], [23.429383333, 59.984683333], [23.421066667, 59.978233333], [23.431, 59.977716667], [23.432133333, 59.976883333], [23.4321, 59.976883333]]}, "properties": {}}]}
|
||||
|
||||
Export timelapse as Geometry Point from a trip
|
||||
-[ RECORD 1 ]
|
||||
?column? | t
|
||||
|
||||
Export GPX from trips
|
||||
-[ RECORD 1 ]
|
||||
?column? | t
|
||||
|
||||
Export KML from trips
|
||||
-[ RECORD 1 ]
|
||||
?column? | t
|
||||
|
Reference in New Issue
Block a user