-- Test input_is_valid set client_min_messages to warning; create extension if not exists pgtap; reset client_min_messages; begin; select plan(28); set search_path to camper, 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'], 'employee', 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', '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('NL04RABO9373475770', 'text'), true ); select is( input_is_valid('ESNL04RABO9373475770', 'vatin'), false ); select is( input_is_valid('NL04RABO9373475770', 'email'), false ); 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('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;