54 lines
2.6 KiB
MySQL
54 lines
2.6 KiB
MySQL
|
-- Test input_is_valid
|
||
|
set client_min_messages to warning;
|
||
|
create extension if not exists pgtap;
|
||
|
reset client_min_messages;
|
||
|
|
||
|
begin;
|
||
|
|
||
|
select plan(36);
|
||
|
|
||
|
set search_path to numerus, public;
|
||
|
|
||
|
select has_function('public', 'input_is_valid', array ['text', 'text']);
|
||
|
select function_lang_is('public', 'input_is_valid', array ['text', 'text'], 'plpgsql');
|
||
|
select function_returns('public', 'input_is_valid', array ['text', 'text'], 'boolean');
|
||
|
select isnt_definer('public', 'input_is_valid', array ['text', 'text']);
|
||
|
select volatility_is('public', 'input_is_valid', array ['text', 'text'], 'stable');
|
||
|
select function_privs_are('public', 'input_is_valid', array ['text', 'text'], 'guest', array ['EXECUTE']);
|
||
|
select function_privs_are('public', 'input_is_valid', array ['text', 'text'], 'invoicer', array ['EXECUTE']);
|
||
|
select function_privs_are('public', 'input_is_valid', array ['text', 'text'], 'admin', array ['EXECUTE']);
|
||
|
select function_privs_are('public', 'input_is_valid', array ['text', 'text'], 'authenticator', array ['EXECUTE']);
|
||
|
|
||
|
select is( input_is_valid('123', 'integer'), true );
|
||
|
select is( input_is_valid('abc', 'integer'), false );
|
||
|
select is( input_is_valid('abc', 'email'), false );
|
||
|
select is( input_is_valid('ESabc', 'vatin'), false );
|
||
|
select is( input_is_valid('abc', 'iban'), false );
|
||
|
select is( input_is_valid('abc', 'bic'), false );
|
||
|
select is( input_is_valid('abc', 'text'), true );
|
||
|
select is( input_is_valid('ES44444444A', 'vatin'), true );
|
||
|
select is( input_is_valid('ES44444444A', 'text'), true );
|
||
|
select is( input_is_valid('ES44444444A', 'email'), false );
|
||
|
select is( input_is_valid('ES44444444A', 'iban'), false );
|
||
|
select is( input_is_valid('ES44444444A', 'bic'), false );
|
||
|
select is( input_is_valid('NL04RABO9373475770', 'iban'), true );
|
||
|
select is( input_is_valid('NL04RABO9373475770', 'text'), true );
|
||
|
select is( input_is_valid('ESNL04RABO9373475770', 'vatin'), false );
|
||
|
select is( input_is_valid('NL04RABO9373475770', 'email'), false );
|
||
|
select is( input_is_valid('NL04RABO9373475770', 'bic'), false );
|
||
|
select is( input_is_valid('ARBNNL22', 'bic'), true );
|
||
|
select is( input_is_valid('ARBNNL22', 'text'), true );
|
||
|
select is( input_is_valid('ESARBNNL22', 'vatin'), false );
|
||
|
select is( input_is_valid('ARBNNL22', 'email'), false );
|
||
|
select is( input_is_valid('ARBNNL22', 'iban'), false );
|
||
|
select is( input_is_valid('2023-05-12', 'text'), true );
|
||
|
select is( input_is_valid('2023-05-12', 'date'), true );
|
||
|
select is( input_is_valid('2023-05-12', 'integer'), false );
|
||
|
select is( input_is_valid('', 'text'), true );
|
||
|
select is( input_is_valid('', 'inexistent'), false );
|
||
|
|
||
|
select *
|
||
|
from finish();
|
||
|
|
||
|
rollback;
|