From ede9fa11f9df14f38288d9e6e19c846f7688c38d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacek=20G=C4=99bal?= Date: Tue, 13 Dec 2016 01:24:18 +0000 Subject: [PATCH 1/6] Added award_bonus example (based on https://docs.oracle.com/database/sql-developer-4.2/RPTUG/sql-developer-unit-testing.htm#RPTUG45068) --- examples/award_bonus/award_bonus.sql | 20 +++++ examples/award_bonus/employees_test.sql | 7 ++ examples/award_bonus/run_award_bonus_test.sql | 10 +++ examples/award_bonus/test_award_bonus.pkg | 82 +++++++++++++++++++ 4 files changed, 119 insertions(+) create mode 100644 examples/award_bonus/award_bonus.sql create mode 100644 examples/award_bonus/employees_test.sql create mode 100644 examples/award_bonus/run_award_bonus_test.sql create mode 100644 examples/award_bonus/test_award_bonus.pkg diff --git a/examples/award_bonus/award_bonus.sql b/examples/award_bonus/award_bonus.sql new file mode 100644 index 000000000..787d5cfa4 --- /dev/null +++ b/examples/award_bonus/award_bonus.sql @@ -0,0 +1,20 @@ +--https://docs.oracle.com/database/sql-developer-4.2/RPTUG/sql-developer-unit-testing.htm#RPTUG45065 + + +create or replace procedure award_bonus (emp_id number, sales_amt number) as + commission real; + comm_missing exception; +begin + select commission_pct into commission + from employees_test + where employee_id = emp_id; + + if commission is null then + raise comm_missing; + else + update employees_test + set salary = nvl(salary,0) + sales_amt*commission + where employee_id = emp_id; + end if; +end; +/ diff --git a/examples/award_bonus/employees_test.sql b/examples/award_bonus/employees_test.sql new file mode 100644 index 000000000..de46d31b0 --- /dev/null +++ b/examples/award_bonus/employees_test.sql @@ -0,0 +1,7 @@ +create table employees_test (employee_id number primary key, commission_pct number, salary number); +insert into employees_test values (1001, 0.2, 8400); +insert into employees_test values (1002, 0.25, 6000); +insert into employees_test values (1003, 0.3, 5000); +-- next employee is not in the sales department, thus is not on commission. +insert into employees_test values (1004, null, 10000); +commit; diff --git a/examples/award_bonus/run_award_bonus_test.sql b/examples/award_bonus/run_award_bonus_test.sql new file mode 100644 index 000000000..466054d64 --- /dev/null +++ b/examples/award_bonus/run_award_bonus_test.sql @@ -0,0 +1,10 @@ +@@employees.sql +@@award_bonus.sql +@@test_award_bonus.pkg + +set serveroutput on +exec ut.run(user||'.test_award_bonus',ut_documentation_reporter()); + +drop package test_award_bonus; +drop procedure award_bonus; +drop table employees_test; diff --git a/examples/award_bonus/test_award_bonus.pkg b/examples/award_bonus/test_award_bonus.pkg new file mode 100644 index 000000000..084d04760 --- /dev/null +++ b/examples/award_bonus/test_award_bonus.pkg @@ -0,0 +1,82 @@ +create or replace package test_award_bonus as + + -- %suite(Award bonus) + + -- %test(Sets new salary as pct commision * sales amount) + -- %testsetup(add_test_employee) + procedure update_employee_salary; + + -- %test(Raises exception if null bonus is passed) + -- %testsetup(add_employee_with_null_comm) + procedure fail_on_null_bonus; + + procedure add_test_employee; + + procedure add_employee_with_null_comm; + +end; +/ + +create or replace package body test_award_bonus as + + gc_test_employee constant integer := -1; + gc_salary constant number := 4500; + gc_commision_pct constant number := 0.2; + + procedure update_employee_salary is + results sys_refcursor; + expected sys_refcursor; + not_affected sys_refcursor; + c_sales_amount constant number := 1000; + begin + --arrange + open expected for + select (salary + c_sales_amount * gc_commision_pct) as new_salary + from employees_test where employee_id = gc_test_employee; + + open not_affected for + select * from employees where employee_id <> gc_test_employee; + + --act + award_bonus(emp_id => gc_test_employee, sales_amt => c_sales_amount); + + --assert + open results for + select salary as new_salary + from employees_test where employee_id = gc_test_employee; + + ut.expect( results ).to_( equal( expected ) ); + + open results for + select * from employees_test where employee_id != gc_test_employee; + + ut.expect( results ).to_( equal( not_affected ) ); + end; + + procedure fail_on_null_bonus is + begin + award_bonus(emp_id => gc_test_employee, sales_amt => null); + ut.expect( sqlcode ).not_to( equal( 0 ) ); + exception + when others then + ut.expect( sqlcode ).not_to( equal( 0 ) ); + end; + + procedure add_employee( emp_id number, comm_pct number, sal number ) is + begin + insert into employees_test (employee_id, commission_pct, salary) + values (emp_id, comm_pct, sal); + end; + + procedure add_test_employee is + begin + add_employee(gc_test_employee, 0.2, gc_salary); + end; + + procedure add_employee_with_null_comm is + begin + add_employee(gc_test_employee, null, gc_salary); + end; + +end; +/ From f6b4e964ebc05cdde48d661db5e8bbb87c47c196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacek=20G=C4=99bal?= Date: Tue, 13 Dec 2016 23:15:31 +0000 Subject: [PATCH 2/6] Added betwnstr example --- examples/award_bonus/run_award_bonus_test.sql | 3 +- examples/between_string/betwnstr.sql | 9 ++++ examples/between_string/run_betwnstr_test.sql | 10 +++++ examples/between_string/test_betwnstr.pkg | 43 +++++++++++++++++++ 4 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 examples/between_string/betwnstr.sql create mode 100644 examples/between_string/run_betwnstr_test.sql create mode 100644 examples/between_string/test_betwnstr.pkg diff --git a/examples/award_bonus/run_award_bonus_test.sql b/examples/award_bonus/run_award_bonus_test.sql index 466054d64..edbca7600 100644 --- a/examples/award_bonus/run_award_bonus_test.sql +++ b/examples/award_bonus/run_award_bonus_test.sql @@ -2,7 +2,8 @@ @@award_bonus.sql @@test_award_bonus.pkg -set serveroutput on +set serveroutput on size unlimited format truncated + exec ut.run(user||'.test_award_bonus',ut_documentation_reporter()); drop package test_award_bonus; diff --git a/examples/between_string/betwnstr.sql b/examples/between_string/betwnstr.sql new file mode 100644 index 000000000..dcdf343d8 --- /dev/null +++ b/examples/between_string/betwnstr.sql @@ -0,0 +1,9 @@ +create or replace function betwnstr( a_string varchar2, a_start_pos integer, a_end_pos integer ) return varchar2 is + l_start_pos pls_integer := a_start_pos; +begin + if l_start_pos = 0 then + l_start_pos := 1; + end if; + return substr( a_string, l_start_pos, a_end_pos - l_start_pos + 1); +end; +/ diff --git a/examples/between_string/run_betwnstr_test.sql b/examples/between_string/run_betwnstr_test.sql new file mode 100644 index 000000000..71553f105 --- /dev/null +++ b/examples/between_string/run_betwnstr_test.sql @@ -0,0 +1,10 @@ +@@betwnstr.sql +@@test_betwnstr.pkg + +set serveroutput on size unlimited format truncated + +exec ut.run(user||'.test_betwnstr',ut_documentation_reporter()); + +drop package test_betwnstr; +drop function betwnstr; + diff --git a/examples/between_string/test_betwnstr.pkg b/examples/between_string/test_betwnstr.pkg new file mode 100644 index 000000000..2984c1c2b --- /dev/null +++ b/examples/between_string/test_betwnstr.pkg @@ -0,0 +1,43 @@ +create or replace package test_betwnstr as + + -- %suite(Between string function) + + -- %test(Returns substring from start position to end position) + procedure normal_case; + + -- %test(Returns substring when start position is zero) + procedure zero_start_position; + + -- %test(Returns string until end if end position is greated than string length) + procedure big_end_position; + + -- %test(Returns null for null inlut srting value) + procedure null_string; +end; +/ + +create or replace package body test_betwnstr as + + procedure normal_case is + begin + ut.expect( betwnstr( '1234567', 2, 5 ) ).to_( equal('2345') ); + end; + + procedure zero_start_position is + begin + ut.expect( betwnstr( '1234567', 0, 5 ) ).to_( equal('12345') ); + end; + + + procedure big_end_position is + begin + ut.expect( betwnstr( '1234567', 0, 500 ) ).to_( equal('1234567') ); + end; + + procedure null_string is + begin + ut.expect( betwnstr( null, 2, 5 ) ).to_( be_null ); + end; + +end; +/ From 3a19187880cd96d6100ab243575ad656a59197e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacek=20G=C4=99bal?= Date: Tue, 13 Dec 2016 23:57:28 +0000 Subject: [PATCH 3/6] Added remove rooms example --- .../remove_rooms_by_name.sql | 8 ++ examples/remove_rooms_by_name/rooms.sql | 12 +++ .../run_remove_rooms_by_name_test.sql | 13 +++ .../test_remove_rooms_by_name.pkg | 96 +++++++++++++++++++ 4 files changed, 129 insertions(+) create mode 100644 examples/remove_rooms_by_name/remove_rooms_by_name.sql create mode 100644 examples/remove_rooms_by_name/rooms.sql create mode 100644 examples/remove_rooms_by_name/run_remove_rooms_by_name_test.sql create mode 100644 examples/remove_rooms_by_name/test_remove_rooms_by_name.pkg diff --git a/examples/remove_rooms_by_name/remove_rooms_by_name.sql b/examples/remove_rooms_by_name/remove_rooms_by_name.sql new file mode 100644 index 000000000..6871692f5 --- /dev/null +++ b/examples/remove_rooms_by_name/remove_rooms_by_name.sql @@ -0,0 +1,8 @@ +create or replace procedure remove_rooms_by_name( l_name rooms.name%type ) is +begin + if l_name is null then + raise program_error; + end if; + delete from rooms where name like l_name; +end; +/ diff --git a/examples/remove_rooms_by_name/rooms.sql b/examples/remove_rooms_by_name/rooms.sql new file mode 100644 index 000000000..bbcb2af8d --- /dev/null +++ b/examples/remove_rooms_by_name/rooms.sql @@ -0,0 +1,12 @@ +create table rooms ( + room_key number primary key, + name varchar2(100) +); + +create table room_contents ( + contents_key number primary key, + room_key number, + name varchar2(100) +); + +alter table room_contents add constraint fk_rooms foreign key (room_key) references rooms (room_key); diff --git a/examples/remove_rooms_by_name/run_remove_rooms_by_name_test.sql b/examples/remove_rooms_by_name/run_remove_rooms_by_name_test.sql new file mode 100644 index 000000000..03689c941 --- /dev/null +++ b/examples/remove_rooms_by_name/run_remove_rooms_by_name_test.sql @@ -0,0 +1,13 @@ +@@rooms.sql +@@remove_rooms_by_name.sql +@@test_remove_rooms_by_name.pkg + +set serveroutput on size unlimited format truncated + +exec ut.run(user||'.test_betwnstr',ut_documentation_reporter()); + +drop package test_remove_rooms_by_name; +drop procedure remove_rooms_by_name; +drop table room_contents; +drop table rooms; + diff --git a/examples/remove_rooms_by_name/test_remove_rooms_by_name.pkg b/examples/remove_rooms_by_name/test_remove_rooms_by_name.pkg new file mode 100644 index 000000000..ed76e15b7 --- /dev/null +++ b/examples/remove_rooms_by_name/test_remove_rooms_by_name.pkg @@ -0,0 +1,96 @@ +create or replace package test_remove_rooms_by_name as + + -- %suite(Remove rooms by name) + + -- %suitesetup + procedure setup_rooms; + + -- %test(Removes a room without content in it) + procedure remove_empty_room; + + -- %test(Does not remove room when it has content) + procedure room_with_content; + + -- %test(Raises exception when null room name given) + procedure null_room_name; + +end; +/ + +create or replace package body test_remove_rooms_by_name as + + procedure setup_rooms is + begin + insert all + into rooms values(1, 'Dining Room') + into rooms values(2, 'Living Room') + into rooms values(3, 'Office') + into rooms values(4, 'Bathroom') + into rooms values(5, 'Bedroom') + select 1 from dual; + + insert all + into room_contents values(1, 1, 'Table') + into room_contents values(2, 1, 'Hutch') + into room_contents values(3, 1, 'Chair') + into room_contents values(4, 2, 'Sofa') + into room_contents values(5, 2, 'Lamp') + into room_contents values(6, 3, 'Desk') + into room_contents values(7, 3, 'Chair') + into room_contents values(8, 3, 'Computer') + into room_contents values(9, 3, 'Whiteboard') + select 1 from dual; + end; + + procedure remove_empty_room is + l_rooms_not_named_b sys_refcursor; + l_remaining_rooms sys_refcursor; + begin + open l_rooms_not_named_b for select * from rooms where name not like 'B%'; + + remove_rooms_by_name('B%'); + + open l_remaining_rooms for select * from rooms; + ut.expect( l_remaining_rooms ).to_(equal(l_rooms_not_named_b)); + end; + + procedure room_with_content is + l_rooms sys_refcursor; + l_remaining_rooms sys_refcursor; + begin + open l_rooms for select * from rooms; + + begin + remove_rooms_by_name('Living Room'); + ut.expect( sqlcode ).to_( equal(-2292) ); + exception + when others then + ut.expect( sqlcode ).to_( equal(-2292) ); + end; + + open l_remaining_rooms for select * from rooms; + + ut.expect( l_remaining_rooms ).to_( equal( l_rooms ) ); + end; + + procedure null_room_name is + l_rooms sys_refcursor; + l_remaining_rooms sys_refcursor; + begin + open l_rooms for select * from rooms; + + begin + remove_rooms_by_name(NULL); + ut.expect( sqlcode ).to_( equal(-6501) ); + exception + when others then + ut.expect( sqlcode ).to_( equal(-6501) ); + end; + + open l_remaining_rooms for select * from rooms; + + ut.expect( l_remaining_rooms ).to_( equal( l_rooms ) ); + end; + +end; +/ From 91fd6387db88904bd3d567db5cb66e7ca0f5e481 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacek=20G=C4=99bal?= Date: Wed, 14 Dec 2016 00:28:37 +0000 Subject: [PATCH 4/6] Fixed examples and added examples to main examples run. --- examples/RunAllExamples.sql | 10 ++++++++++ examples/award_bonus/run_award_bonus_test.sql | 2 +- examples/award_bonus/test_award_bonus.pkg | 2 +- .../run_remove_rooms_by_name_test.sql | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/examples/RunAllExamples.sql b/examples/RunAllExamples.sql index f60af0a7e..21d1dfe15 100644 --- a/examples/RunAllExamples.sql +++ b/examples/RunAllExamples.sql @@ -23,3 +23,13 @@ prompt RunExpectations @@RunExpectations.sql prompt RunWithDocumentationReporter @@RunWithDocumentationReporter.sql + +@@award_bonus/run_award_bonus_test.sql +--workaround for suite level cache +declare d date := sysdate; begin loop exit when d != sysdate; end loop; end; +/ +@@between_string/run_betwnstr_test.sql +--workaround for suite level cache +declare d date := sysdate; begin loop exit when d != sysdate; end loop; end; +/ +@@remove_rooms_by_name/run_remove_rooms_by_name_test.sql diff --git a/examples/award_bonus/run_award_bonus_test.sql b/examples/award_bonus/run_award_bonus_test.sql index edbca7600..b0aff827e 100644 --- a/examples/award_bonus/run_award_bonus_test.sql +++ b/examples/award_bonus/run_award_bonus_test.sql @@ -1,4 +1,4 @@ -@@employees.sql +@@employees_test.sql @@award_bonus.sql @@test_award_bonus.pkg diff --git a/examples/award_bonus/test_award_bonus.pkg b/examples/award_bonus/test_award_bonus.pkg index 084d04760..3238576cb 100644 --- a/examples/award_bonus/test_award_bonus.pkg +++ b/examples/award_bonus/test_award_bonus.pkg @@ -35,7 +35,7 @@ create or replace package body test_award_bonus as from employees_test where employee_id = gc_test_employee; open not_affected for - select * from employees where employee_id <> gc_test_employee; + select * from employees_test where employee_id <> gc_test_employee; --act award_bonus(emp_id => gc_test_employee, sales_amt => c_sales_amount); diff --git a/examples/remove_rooms_by_name/run_remove_rooms_by_name_test.sql b/examples/remove_rooms_by_name/run_remove_rooms_by_name_test.sql index 03689c941..e5d14962e 100644 --- a/examples/remove_rooms_by_name/run_remove_rooms_by_name_test.sql +++ b/examples/remove_rooms_by_name/run_remove_rooms_by_name_test.sql @@ -4,7 +4,7 @@ set serveroutput on size unlimited format truncated -exec ut.run(user||'.test_betwnstr',ut_documentation_reporter()); +exec ut.run(user||'.test_remove_rooms_by_name',ut_documentation_reporter()); drop package test_remove_rooms_by_name; drop procedure remove_rooms_by_name; From 776cc326bac1e85c47d6a906b66d3caa7f8f354f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacek=20G=C4=99bal?= Date: Wed, 14 Dec 2016 00:49:39 +0000 Subject: [PATCH 5/6] Fixed examples execution and improved performance and visibility for examples. --- examples/RunAllExamples.sql | 5 ++++- examples/demo_expectations.pck | 30 +++++++++++++++--------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/examples/RunAllExamples.sql b/examples/RunAllExamples.sql index 21d1dfe15..b83f2ab82 100644 --- a/examples/RunAllExamples.sql +++ b/examples/RunAllExamples.sql @@ -21,9 +21,12 @@ prompt RunExampleTestAnnotationsHugePackage @@RunExampleTestAnnotationsHugePackage.sql prompt RunExpectations @@RunExpectations.sql -prompt RunWithDocumentationReporter + @@RunWithDocumentationReporter.sql +--workaround for suite level cache +declare d date := sysdate; begin loop exit when d != sysdate; end loop; end; +/ @@award_bonus/run_award_bonus_test.sql --workaround for suite level cache declare d date := sysdate; begin loop exit when d != sysdate; end loop; end; diff --git a/examples/demo_expectations.pck b/examples/demo_expectations.pck index 15f7622bc..39713df18 100644 --- a/examples/demo_expectations.pck +++ b/examples/demo_expectations.pck @@ -147,7 +147,7 @@ create or replace package body demo_expectations is ut.expect( l_actual_timestamp_tz ).to_( equal( l_expected_timestamp_tz ) ); ut.expect( l_actual_varchar2 ).to_( equal( l_expected_varchar2 ) ); - open l_actual_cursor for select * from user_objects where rownum <100; + open l_actual_cursor for select * from user_objects where rownum <6; open l_expected_cursor for select * from user_objects where rownum <5; ut.expect(l_actual_cursor).to_equal(l_expected_cursor); @@ -178,7 +178,7 @@ create or replace package body demo_expectations is ut.expect( l_timestamp ).to_equal( l_timestamp_tz ); ut.expect( l_timestamp_ltz ).to_equal( l_date ); ut.expect( l_varchar2 ).to_equal( l_clob ); - open l_cursor for select * from user_objects where rownum <100; + open l_cursor for select * from user_objects where rownum <5; ut.expect( l_cursor ).to_equal( l_varchar2 ); --using the to_( equal( ) ) matcher @@ -192,7 +192,7 @@ create or replace package body demo_expectations is ut.expect( l_timestamp ).to_( equal( l_timestamp_tz ) ); ut.expect( l_timestamp_ltz ).to_( equal( l_date ) ); ut.expect( l_varchar2 ).to_( equal( l_clob ) ); - open l_cursor for select * from user_objects where rownum <100; + open l_cursor for select * from user_objects where rownum <5; ut.expect( l_varchar2 ).to_( equal( l_cursor ) ); end; @@ -223,8 +223,8 @@ create or replace package body demo_expectations is ut.expect( l_timestamp_ltz ).to_equal( l_timestamp_ltz ); ut.expect( l_timestamp_tz ).to_equal( l_timestamp_tz ); ut.expect( l_varchar2 ).to_equal( l_varchar2 ); - open l_cursor1 for select * from all_objects; - open l_cursor2 for select * from all_objects; + open l_cursor1 for select * from all_objects where rownum <=50; + open l_cursor2 for select * from all_objects where rownum <=50; ut.expect( l_cursor1 ).to_equal( l_cursor2 ); --using the to_( equal( ) ) matcher @@ -239,8 +239,8 @@ create or replace package body demo_expectations is ut.expect( l_timestamp_tz ).to_( equal( l_timestamp_tz ) ); ut.expect( l_varchar2 ).to_( equal( l_varchar2 ) ); - open l_cursor1 for select * from all_objects; - open l_cursor2 for select * from all_objects; + open l_cursor1 for select * from all_objects where rownum <=50; + open l_cursor2 for select * from all_objects where rownum <=50; ut.expect( l_cursor1 ).to_( equal( l_cursor2 ) ); end; @@ -291,7 +291,7 @@ create or replace package body demo_expectations is l_timestamp_tz timestamp with time zone := l_timestamp; l_varchar2 varchar2(100) := 'a string'; begin - open l_cursor for select * from user_objects where rownum <100; + open l_cursor for select * from user_objects where rownum <5; --using the to_be_null() matcher ut.expect( l_anydata ).to_be_null(); ut.expect( l_blob ).to_be_null(); @@ -306,7 +306,7 @@ create or replace package body demo_expectations is ut.expect( l_cursor ).to_be_null; --using the to_( be_null() ) matcher - open l_cursor for select * from user_objects where rownum <100; + open l_cursor for select * from user_objects where rownum <5; ut.expect( l_anydata ).to_( be_null() ); ut.expect( l_blob ).to_( be_null() ); ut.expect( l_boolean ).to_( be_null() ); @@ -432,7 +432,7 @@ create or replace package body demo_expectations is l_timestamp_tz timestamp with time zone := sysdate; l_varchar2 varchar2(100) := 'a string'; begin - open l_cursor for select * from user_objects where rownum <100; + open l_cursor for select * from user_objects where rownum <5; --using the to_be_not_null() matcher ut.expect( l_anydata ).to_be_not_null(); ut.expect( l_blob ).to_be_not_null(); @@ -447,7 +447,7 @@ create or replace package body demo_expectations is ut.expect( l_cursor ).to_be_not_null; --using the to_( be_not_null() ) matcher - open l_cursor for select * from user_objects where rownum <100; + open l_cursor for select * from user_objects where rownum <5; ut.expect( l_anydata ).to_( be_not_null() ); ut.expect( l_blob ).to_( be_not_null() ); ut.expect( l_boolean ).to_( be_not_null() ); @@ -462,7 +462,7 @@ create or replace package body demo_expectations is end; procedure demo_to_match_failure is - l_clob clob := rpad('a',32767,'a')||'Stephen'; + l_clob clob := 'There was a guy named Stephen'; begin ut.expect( 'STEPHEN' ).to_match('^Stephen$'); ut.expect( 'stephen ' ).to_match('^Stephen$', 'i'); --case insensitive @@ -479,7 +479,7 @@ create or replace package body demo_expectations is end; procedure demo_to_match_success is - l_clob clob := rpad('a',32767,'a')||'STEPHEN'; + l_clob clob := 'There was a guy named STEPHEN'; begin ut.expect( 'Hi, I am Stephen' ).to_match('Stephen$'); ut.expect( 'stephen' ).to_match('^Stephen$', 'i'); --case insensitive @@ -492,7 +492,7 @@ create or replace package body demo_expectations is end; procedure demo_to_be_like_failure is - l_clob clob := rpad('a',32767,'a')||'Stephen'; + l_clob clob := 'There was a guy named Stephen'; begin ut.expect( 'STEPHEN' ).to_be_like('Stephen'); ut.expect( 'Stephen ' ).to_be_like('Stephen\_', '\'); --escape wildcards with '\' @@ -509,7 +509,7 @@ create or replace package body demo_expectations is end; procedure demo_to_be_like_success is - l_clob clob := rpad('a',32767,'a')||'STEPHEN_'; + l_clob clob := 'There was a guy named STEPHEN_'; begin ut.expect( 'Hi, I am Stephen' ).to_be_like('%Stephen'); ut.expect( 'stephen_' ).to_be_like('_tephen\_', '\'); --escape wildcards with '\' From 9502f1668133d6c1a1c7250d3c5f82df45b7966a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacek=20G=C4=99bal?= Date: Thu, 15 Dec 2016 08:05:27 +0000 Subject: [PATCH 6/6] Adressed code review comments. --- examples/RunAllExamples.sql | 9 --------- examples/remove_rooms_by_name/rooms.sql | 5 ++--- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/examples/RunAllExamples.sql b/examples/RunAllExamples.sql index b83f2ab82..5e53d7d04 100644 --- a/examples/RunAllExamples.sql +++ b/examples/RunAllExamples.sql @@ -24,15 +24,6 @@ prompt RunExpectations @@RunWithDocumentationReporter.sql ---workaround for suite level cache -declare d date := sysdate; begin loop exit when d != sysdate; end loop; end; -/ @@award_bonus/run_award_bonus_test.sql ---workaround for suite level cache -declare d date := sysdate; begin loop exit when d != sysdate; end loop; end; -/ @@between_string/run_betwnstr_test.sql ---workaround for suite level cache -declare d date := sysdate; begin loop exit when d != sysdate; end loop; end; -/ @@remove_rooms_by_name/run_remove_rooms_by_name_test.sql diff --git a/examples/remove_rooms_by_name/rooms.sql b/examples/remove_rooms_by_name/rooms.sql index bbcb2af8d..522c48f84 100644 --- a/examples/remove_rooms_by_name/rooms.sql +++ b/examples/remove_rooms_by_name/rooms.sql @@ -6,7 +6,6 @@ create table rooms ( create table room_contents ( contents_key number primary key, room_key number, - name varchar2(100) + name varchar2(100), + constraint fk_rooms foreign key (room_key) references rooms (room_key) ); - -alter table room_contents add constraint fk_rooms foreign key (room_key) references rooms (room_key);