CREATE OR REPLACE FUNCTION unit_tests.array_distinct_test() RETURNS test_result AS $$
DECLARE arr text[]; DECLARE message test_result;
BEGIN
SELECT framework.array_distinct(ARRAY['foo', NULL, 'bar', 'foo', 'ok', 'bar'], TRUE) INTO arr; IF arr <> ARRAY['bar', 'foo', 'ok'] THEN SELECT assert.fail('Unexpected array value') INTO message; RETURN message; END IF; SELECT framework.array_distinct(ARRAY[]::TEXT[], TRUE) INTO arr; SELECT framework.array_distinct(ARRAY[]::INTEGER[], TRUE, ARRAY[]::INTEGER[]) INTO arr; IF arr IS NULL THEN SELECT assert.fail('Expected empty array, got null') INTO message; RETURN message; END IF; SELECT assert.ok('framework.array_distinct is OK') INTO message; RETURN message;
END; $$ LANGUAGE plpgsql;