@@ -523,6 +523,68 @@ create or replace package body test_suite_builder is
523523 );
524524 end;
525525
526+ procedure multiple_mixed_bef_aft is
527+ l_actual clob;
528+ l_annotations ut3.ut_annotations;
529+ begin
530+ --Arrange
531+ l_annotations := ut3.ut_annotations(
532+ ut3.ut_annotation(1, 'suite','Cool', null),
533+ ut3.ut_annotation(2, 'beforeall', null,'first_before_all'),
534+ ut3.ut_annotation(3, 'beforeall', 'different_package.another_before_all',null),
535+ ut3.ut_annotation(4, 'beforeeach', 'first_before_each',null),
536+ ut3.ut_annotation(5, 'beforeeach', 'different_owner.different_package.another_before_each',null),
537+ ut3.ut_annotation(6, 'aftereach', null, 'first_after_each'),
538+ ut3.ut_annotation(7, 'aftereach', 'another_after_each,different_owner.different_package.one_more_after_each',null),
539+ ut3.ut_annotation(8, 'afterall', 'first_after_all',null),
540+ ut3.ut_annotation(9, 'afterall', 'another_after_all',null),
541+ ut3.ut_annotation(14, 'test','A test', 'some_test'),
542+ ut3.ut_annotation(15, 'beforetest','before_test_proc', 'some_test'),
543+ ut3.ut_annotation(16, 'beforetest','before_test_proc2', 'some_test'),
544+ ut3.ut_annotation(18, 'aftertest','after_test_proc', 'some_test'),
545+ ut3.ut_annotation(20, 'aftertest','after_test_proc2', 'some_test'),
546+ ut3.ut_annotation(21, 'beforeall', null,'last_before_all'),
547+ ut3.ut_annotation(22, 'aftereach', null, 'last_after_each'),
548+ ut3.ut_annotation(23, 'afterall', null, 'last_after_all')
549+ );
550+ --Act
551+ l_actual := invoke_builder_for_annotations(l_annotations, 'SOME_PACKAGE');
552+ --Assert
553+ ut.expect(l_actual).to_be_like(
554+ '%<UT_SUITE_ITEM>%<OBJECT_NAME>some_package</OBJECT_NAME>%<NAME>some_test</NAME>' ||
555+ '%<BEFORE_EACH_LIST>' ||
556+ '%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>first_before_each</PROCEDURE_NAME>' ||
557+ '%<OWNER_NAME>different_owner</OWNER_NAME><OBJECT_NAME>different_package</OBJECT_NAME><PROCEDURE_NAME>another_before_each</PROCEDURE_NAME>' ||
558+ '%</BEFORE_EACH_LIST>' ||
559+ '%<BEFORE_TEST_LIST>' ||
560+ '%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>before_test_proc</PROCEDURE_NAME>' ||
561+ '%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>before_test_proc2</PROCEDURE_NAME>' ||
562+ '%</BEFORE_TEST_LIST>' ||
563+ '%<AFTER_TEST_LIST>' ||
564+ '%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>after_test_proc</PROCEDURE_NAME>' ||
565+ '%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>after_test_proc2</PROCEDURE_NAME>' ||
566+ '%</AFTER_TEST_LIST>' ||
567+ '%<AFTER_EACH_LIST>' ||
568+ '%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>first_after_each</PROCEDURE_NAME>' ||
569+ '%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>another_after_each</PROCEDURE_NAME>' ||
570+ '%<OWNER_NAME>different_owner</OWNER_NAME><OBJECT_NAME>different_package</OBJECT_NAME><PROCEDURE_NAME>one_more_after_each</PROCEDURE_NAME>' ||
571+ '%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>last_after_each</PROCEDURE_NAME>' ||
572+ '%</AFTER_EACH_LIST>' ||
573+ '%</UT_SUITE_ITEM>' ||
574+ '%<BEFORE_ALL_LIST>' ||
575+ '%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>first_before_all</PROCEDURE_NAME>' ||
576+ '%<OBJECT_NAME>different_package</OBJECT_NAME><PROCEDURE_NAME>another_before_all</PROCEDURE_NAME>' ||
577+ '%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>last_before_all</PROCEDURE_NAME>' ||
578+ '%</BEFORE_ALL_LIST>' ||
579+ '%<AFTER_ALL_LIST>' ||
580+ '%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>first_after_all</PROCEDURE_NAME>' ||
581+ '%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>another_after_all</PROCEDURE_NAME>' ||
582+ '%<OBJECT_NAME>some_package</OBJECT_NAME><PROCEDURE_NAME>last_after_all</PROCEDURE_NAME>' ||
583+ '%</AFTER_ALL_LIST>%'
584+ );
585+ end;
586+
587+
526588 procedure before_after_mixed_with_test is
527589 l_actual clob;
528590 l_annotations ut3.ut_annotations;
0 commit comments