exercism/plsql/hello-world/ut_hello_world#.plsql

61 lines
1.2 KiB
Plaintext

CREATE OR REPLACE PACKAGE ut_hello_world#
IS
PROCEDURE run;
END ut_hello_world#;
/
CREATE OR REPLACE PACKAGE BODY ut_hello_world#
IS
PROCEDURE TEST (
i_descn varchar2,
i_exp varchar2,
i_act varchar2
)
IS
BEGIN
IF i_exp = i_act THEN
dbms_output.put_line('SUCCESS: ' || i_descn);
ELSE
dbms_output.put_line(
'FAILURE: ' || i_descn ||
': expected ''' || NVL('' || i_exp, 'NULL') ||
''', but got ''' || NVL('' || i_act, 'null') || '''!'
);
END IF;
END TEST;
PROCEDURE run
IS
BEGIN
TEST(
i_descn => 'no name',
i_exp => 'Hello, World!',
i_act => hello_world#.hello()
);
TEST(
i_descn => 'sample name',
i_exp => 'Hello, Alice!',
i_act => hello_world#.hello('Alice')
);
TEST(
i_descn => 'other sample name',
i_exp => 'Hello, Bob!',
i_act => hello_world#.hello('Bob')
);
EXCEPTION
WHEN others THEN
dbms_output.put_line('Test execution failed.');
dbms_output.put_line(sqlerrm);
END run;
END ut_hello_world#;
/
BEGIN
ut_hello_world#.run;
END;
/