Mercurial > gemma
view schema/gemma_tests.sql @ 5654:358130887c72
Added tag v5.7.1 for changeset 9b3779f649c2
author | Sascha Wilde <wilde@sha-bang.de> |
---|---|
date | Tue, 08 Aug 2023 15:07:00 +0200 |
parents | 722b7c305319 |
children |
line wrap: on
line source
-- This is Free Software under GNU Affero General Public License v >= 3.0 -- without warranty, see README.md and license for details. -- SPDX-License-Identifier: AGPL-3.0-or-later -- License-Filename: LICENSES/AGPL-3.0.txt -- Copyright (C) 2019 by via donau -- – Österreichische Wasserstraßen-Gesellschaft mbH -- Software engineering by Intevation GmbH -- Author(s): -- * Tom Gottfried <tom@intevation.de> -- -- pgTAP test script for gemma schema definition -- SELECT ok(is_valid_from_item('SELECT * FROM sys_admin.published_services'), 'Valid statement passes check'); SELECT ok(NOT is_valid_from_item('This is not SQL'), 'Arbitrary text does not pass check'); SELECT ok(is_valid_from_item(NULL) IS NULL, 'NULL value is not checked'); SELECT throws_ok($$ SET CONSTRAINTS waterway.waterway_axis_wtwaxs_unique IMMEDIATE; INSERT INTO waterway.waterway_axis (wtwaxs, objnam) VALUES (ST_GeogFromText('MULTILINESTRING((0 0, 1 1))'), 'test'), (ST_GeogFromText('MULTILINESTRING((0 0, 1 1))'), 'test') $$, 23505, NULL, 'No duplicate geometries can be inserted into waterway_axis'); SELECT throws_ok($$ SET CONSTRAINTS waterway.waterway_axis_wtwaxs_unique IMMEDIATE; INSERT INTO waterway.waterway_axis (wtwaxs, objnam, validity) VALUES ( ST_GeogFromText('MULTILINESTRING((0 0, 1 1))'), 'test', tstzrange(NULL, current_timestamp) ), ( ST_GeogFromText('MULTILINESTRING((0 0, 1 1))'), 'test', tstzrange(current_timestamp - interval '1d', NULL) ) $$, 23505, NULL, 'Duplicate axis geometries cannot be inserted if validities intersect'); SELECT lives_ok($$ INSERT INTO waterway.waterway_axis (wtwaxs, objnam, validity) VALUES ( ST_GeogFromText('MULTILINESTRING((0 0, 1 1))'), 'test', tstzrange(NULL, current_timestamp) ), ( ST_GeogFromText('MULTILINESTRING((0 0, 1 1))'), 'test', tstzrange(current_timestamp, NULL) ) $$, 'Duplicate axis geometries can be inserted if validity differs'); SELECT throws_ok($$ INSERT INTO waterway.waterway_area (area) VALUES (ST_GeogFromText('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))')), (ST_GeogFromText('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))')) $$, 23505, NULL, 'No duplicate geometries can be inserted into waterway_area'); SELECT throws_ok($$ INSERT INTO waterway.fairway_dimensions ( area, level_of_service, min_width, max_width, min_depth, source_organization ) VALUES ( ST_GeogFromText('MULTIPOLYGON(((0 0, 1 1, 1 0, 0 0)))'), 3, 100, 200, 2, 'test' ), ( ST_GeogFromText('MULTIPOLYGON(((0 0, 1 1, 1 0, 0 0)))'), 3, 100, 200, 2, 'test' ) $$, 23505, NULL, 'No duplicate geometries can be inserted into fairway_dimensions'); SELECT lives_ok($$ INSERT INTO waterway.fairway_dimensions ( area, level_of_service, min_width, max_width, min_depth, source_organization, staging_done ) VALUES ( ST_GeogFromText('MULTIPOLYGON(((0 0, 1 1, 1 0, 0 0)))'), 3, 100, 200, 2, 'test', false ), ( ST_GeogFromText('MULTIPOLYGON(((0 0, 1 1, 1 0, 0 0)))'), 3, 100, 200, 2, 'test', true ) $$, 'Duplicate fairway area can be inserted if stage_done differs'); SELECT throws_ok($$ UPDATE waterway.fairway_dimensions SET staging_done = true $$, 23505, NULL, 'No duplicate fairway area can be released from staging area');