view schema/gemma_tests.sql @ 3762:98d5dd2f0ca1

Don't show unnecessary warnings when uploading TXT file for SR.
author Sascha Wilde <wilde@intevation.de>
date Wed, 26 Jun 2019 11:00:35 +0200
parents db87f34805fb
children b785b6bef578
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 throws_ok($$
    INSERT INTO waterway.waterway_axis (wtwaxs, objnam) VALUES
        (ST_GeogFromText('LINESTRING(0 0, 1 1)'), 'test'),
        (ST_GeogFromText('LINESTRING(0 0, 1 1)'), 'test')
    $$,
    23505, NULL,
    'No duplicate geometries can be inserted into waterway_axis');

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');

START TRANSACTION;
CREATE TEMP TABLE new_v (v) AS
    SELECT tstzrange(current_timestamp - '2 d'::interval,
        current_timestamp - '12 h'::interval);
INSERT INTO waterway.gauges (
    location,
    validity,
    objname,
    geom,
    zero_point,
    date_info,
    source_organization,
    lastupdate,
    erased)
VALUES (
    ('AT', 'XXX', '00001', 'G0001', 1)::isrs,
    (SELECT v FROM new_v),
    'testgauge',
    ST_geomfromtext('POINT(0 0)', 4326),
    0,
    current_timestamp,
    'testorganization',
    current_timestamp,
    true);
-- Fix validity of old entry to match exclusion constraint
UPDATE waterway.gauges SET
    validity = validity - (SELECT v FROM new_v)
WHERE location = ('AT', 'XXX', '00001', 'G0001', 1)::isrs
    AND validity && (SELECT v FROM new_v)
    AND NOT erased;
COMMIT;
SELECT results_eq($$
    SELECT count(*) FROM waterway.bottlenecks GROUP BY bottleneck_id;
    $$,
    CAST(ARRAY[2,2] AS bigint[]),
    'Bottlenecks have been split to two new matching gauge versions');