-- packages/acs-events/sql/postgresql/test/utest.sql
--
-- Regression test of the unit test package (aha, recursion ;-).
--
-- @author jowell@jsabino.com
-- @creation-date 2001-06-26
--
-- $Id: utest.sql,v 1.5 2018/04/02 17:40:15 gustafn Exp $
--
-- procedure inline_0/0
--
CREATE OR REPLACE FUNCTION inline_0(
) RETURNS integer AS $$
DECLARE
v_str varchar;
v_datetest timestamp;
v_dateref timestamp;
BEGIN
PERFORM ut_assert__eq(
'Test of ut_assert__eq (equality).',
'1',
'1',
'f',
't'
);
PERFORM ut_assert__eq(
'Test of ut_assert__eq (equality).',
'1',
'1'
);
PERFORM ut_assert__eq(
'Test of ut_assert__eq (inequality).',
'1',
'0',
'f',
'f' -- we don't want to raise an exception here
);
PERFORM ut_assert__eq(
'Test of ut_assert__eq (inequality).',
'1',
'0'
);
PERFORM ut_assert__eq(
'Test of ut_assert__b2v (true).',
ut_assert__b2v(1+1 = 2),
'true',
'f',
't'
);
PERFORM ut_assert__eq(
'Test of ut_assert__b2v (true).',
ut_assert__b2v(1+1 = 2),
'true'
);
PERFORM ut_assert__eq(
'Test of ut_assert__b2v (false).',
ut_assert__b2v(1+1 = 1),
'false',
'f',
't'
);
PERFORM ut_assert__eq(
'Test of ut_assert__b2v (false).',
ut_assert__b2v(1+1 = 1),
'false'
);
PERFORM ut_assert__eq(
'Test of ut_assert__eq (boolean,boolean).',
1+1 = 2,
'true',
'f',
't'
);
PERFORM ut_assert__eq(
'Test of ut_assert__eq (boolean,boolean).',
1+1 = 2,
'true'
);
PERFORM ut_assert__eq(
'Test of ut_assert__eq (boolean,boolean).',
1+1 = 1,
'false',
'f',
't'
);
PERFORM ut_assert__eq(
'Test of ut_assert__eq (boolean,boolean).',
1+1 = 1,
'false'
);
select now() into v_dateref;
v_datetest := v_dateref;
PERFORM ut_assert__eq(
'Test of ut_assert__eq (timestamp,timestamp).',
v_datetest,
v_dateref,
'f',
'f'
);
PERFORM ut_assert__eq(
'Test of ut_assert__eq (timestamp,timestamp).',
v_datetest,
v_dateref
);
v_datetest := now() + interval '1 days';
PERFORM ut_assert__eq(
'Test of ut_assert__eq (timestamp,timestamp).',
v_datetest,
v_dateref,
'f',
'f' -- do not raise exception
);
PERFORM ut_assert__eq(
'Test of ut_assert__eq (timestamp,timestamp).',
v_datetest,
v_dateref
);
PERFORM ut_assert__ieqminus(
'Test of query equality.',
'select 1 from dual',
'select 1 from dual',
'Simple select from dual.',
't'
);
PERFORM ut_assert__ieqminus(
'Test of query inequality.',
'select 1 from dual',
'select 2 from dual',
'simple select from dual ',
'f' -- do not raise exception since this will fail
);
create table ut_temp (
an_integer integer,
a_varchar varchar);
insert into ut_temp values (1,'a');
insert into ut_temp values (2,'b');
PERFORM ut_assert__ieqminus(
'Test of query equality.',
'select * from ut_temp where an_integer = 1',
'select * from ut_temp where a_varchar = ' || '''' || 'a' || '''',
'Simple comparison of two tables.',
't'
);
PERFORM ut_assert__ieqminus(
'Test of query inequality.',
'select * from ut_temp where an_integer = 2',
'select * from ut_temp',
'Simple comparison of two unequal tables.',
'f'
);
create table ut_another as select * from ut_temp;
PERFORM ut_assert__eqtable(
'Test of simple table equality.',
'ut_another',
'ut_temp',
null,
null,
't'
);
PERFORM ut_assert__eqtable(
'Test of simple table equality.',
'ut_another',
'ut_temp'
);
PERFORM ut_assert__eqtable(
'Test of simple table equality.',
'ut_another',
'ut_temp',
'an_integer = 1',
'a_varchar = ' || '''' || 'a' || '''',
't'
);
PERFORM ut_assert__eqtable(
'Test of simple table inequality.',
'ut_another',
'ut_temp',
'an_integer = 1',
'a_varchar = ' || '''' || 'b' || '''',
'f'
);
PERFORM ut_assert__eqtabcount(
'Test of simple table count equality.',
'ut_another',
'ut_temp',
null,
null,
't'
);
PERFORM ut_assert__eqtabcount(
'Test of simple table count equality.',
'ut_another',
'ut_temp',
'an_integer = 1',
'a_varchar = ' || '''' || 'a' || '''',
't'
);
PERFORM ut_assert__eqtabcount(
'Test of simple table inequality.',
'ut_another',
'ut_temp',
null,
'a_varchar = ' || '''' || 'b' || '''',
'f'
);
PERFORM ut_assert__eqquery(
'Test of query equality.',
'select * from ut_temp where an_integer = 1',
'select * from ut_temp where a_varchar = ' || '''' || 'a' || '''',
't'
);
PERFORM ut_assert__eqquery(
'Test of query equality.',
'select * from ut_temp where an_integer = 1',
'select * from ut_temp where a_varchar = ' || '''' || 'a' || ''''
);
PERFORM ut_assert__eqquery(
'Test of query equality.',
'select * from ut_temp where an_integer = 2',
'select * from ut_temp',
'f'
);
PERFORM ut_assert__eqquery(
'Test of query equality.',
'select * from ut_temp where an_integer = 2',
'select * from ut_temp'
);
delete from ut_another where an_integer=2;
PERFORM ut_assert__eqtable(
'Test of simple table inequality.',
'ut_another',
'ut_temp',
null,
null,
'f'
);
PERFORM ut_assert__eqtable(
'Test of simple table inequality.',
'ut_another',
'ut_temp'
);
PERFORM ut_assert__isnotnull(
'Degenerate test of non-null',
'1',
'f',
't'
);
PERFORM ut_assert__isnotnull(
'Degenerate test of non-null',
'1'
);
PERFORM ut_assert__isnull(
'Degenerate test of null',
null,
'f',
't'
);
PERFORM ut_assert__isnull(
'Degenerate test of null',
null
);
-- We already deleted this, so v_str should be null
select into v_str a_varchar from ut_another where an_integer = 2;
PERFORM ut_assert__isnull(
'Degenerate test of null',
v_str,
'f',
't'
);
PERFORM ut_assert__isnull(
'Degenerate test of null',
v_str
);
-- Still in table, so should be non-null.
select into v_str a_varchar from ut_another where an_integer = 1;
PERFORM ut_assert__isnotnull(
'Degenerate test of null',
v_str,
'f',
't'
);
PERFORM ut_assert__isnotnull(
'Degenerate test of null',
v_str
);
drop table ut_temp;
drop table ut_another;
return 0;
END;
$$ LANGUAGE plpgsql;
select (case when inline_0 () = 0
then
'Regression test is a success.'
end) as test_result;
drop function inline_0 ();