Skip to content

Commit 480485d

Browse files
committed
Issue #7: migrate a test to using Test2::V0
and introducing subtests
1 parent c35ddbb commit 480485d

File tree

1 file changed

+46
-77
lines changed

1 file changed

+46
-77
lines changed

scripts/test/FAQ/RelatedArticle.t

+46-77
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,10 @@ use warnings;
2121
# core modules
2222

2323
# CPAN modules
24+
use Test2::V0;
2425

2526
# OTOBO modules
26-
use Kernel::System::UnitTest::RegisterDriver; # Set up $Self and $Kernel::OM
27-
28-
our $Self;
27+
use Kernel::System::UnitTest::RegisterDriver; # Set up $Kernel::OM
2928

3029
$Kernel::OM->ObjectParamAdd(
3130
'Kernel::System::UnitTest::Helper' => {
@@ -174,10 +173,7 @@ for my $FAQItem (@FAQItems) {
174173
%{$FAQItem},
175174
);
176175

177-
$Self->True(
178-
$FAQItemID,
179-
"FAQAdd() successful for test - FAQItemID $FAQItemID",
180-
);
176+
ok( $FAQItemID, "FAQAdd() successful for test - FAQItemID $FAQItemID" );
181177

182178
push @FAQItemIDs, $FAQItemID;
183179
}
@@ -431,41 +427,30 @@ for my $Test (@Tests) {
431427
# check FAQKeywordArticleList attribute
432428
if ( !$Test->{FAQKeywordArticleList} || ref $Test->{FAQKeywordArticleList} ne 'HASH' ) {
433429

434-
$Self->True(
435-
0,
436-
"Test $TestCount: No FAQKeywordArticleList found for this test.",
437-
);
430+
fail("Test $TestCount: No FAQKeywordArticleList found for this test.");
438431

439432
next TEST;
440433
}
441434

442-
# print test case description
443-
if ( $Test->{Description} ) {
444-
$Self->True(
445-
1,
446-
"Test $TestCount: $Test->{Description}",
447-
);
448-
}
435+
subtest "Test $TestCount: $Test->{Description}" => sub {
449436

450-
my %FAQKeywordArticleList = $FAQObject->FAQKeywordArticleList(
451-
%{ $Test->{FAQKeywordArticleList} },
452-
);
453-
454-
if ( $Test->{Fails} ) {
455-
$Self->False(
456-
%FAQKeywordArticleList ? 1 : 0,
457-
"Test $TestCount: FAQKeywordArticleList() - should fail.",
437+
my %FAQKeywordArticleList = $FAQObject->FAQKeywordArticleList(
438+
$Test->{FAQKeywordArticleList}->%*,
458439
);
459-
}
460-
else {
461440

462-
for my $Keyword ( sort keys %{ $Test->{ReferenceData} } ) {
441+
if ( $Test->{Fails} ) {
442+
ok( !%FAQKeywordArticleList, "Test $TestCount: FAQKeywordArticleList() - should fail." );
443+
}
444+
else {
463445

464-
$Self->IsDeeply(
465-
$FAQKeywordArticleList{$Keyword} || [],
466-
$Test->{ReferenceData}->{$Keyword},
467-
"Test $TestCount: FAQKeywordArticleList() - $Keyword - test the result",
468-
);
446+
for my $Keyword ( sort keys %{ $Test->{ReferenceData} } ) {
447+
448+
is(
449+
$FAQKeywordArticleList{$Keyword} || [],
450+
$Test->{ReferenceData}->{$Keyword},
451+
"Test $TestCount: FAQKeywordArticleList() - $Keyword - test the result",
452+
);
453+
}
469454
}
470455
}
471456
}
@@ -504,14 +489,11 @@ my $LastFAQKeywordArticleListCache = $Kernel::OM->Get('Kernel::System::Cache')->
504489
Key => $CacheKey,
505490
);
506491

507-
$Self->True(
508-
1,
509-
"Test $TestCount: Test the cache for last function call",
510-
);
492+
diag("Test $TestCount: Test the cache for last function call");
511493

512494
for my $Keyword ( sort keys %{ $Tests[-1]->{ReferenceData} } ) {
513495

514-
$Self->IsDeeply(
496+
is(
515497
$LastFAQKeywordArticleListCache->{$Keyword} || [],
516498
$Tests[-1]->{ReferenceData}->{$Keyword},
517499
"Test $TestCount: Cache - FAQKeywordArticleList() - $Keyword - test the result",
@@ -803,10 +785,7 @@ for my $Test (@Tests) {
803785
)
804786
{
805787

806-
$Self->True(
807-
0,
808-
"Test $TestCount: No RelatedAgentArticleList or RelatedCustomerArticleList found for this test.",
809-
);
788+
fail("Test $TestCount: No RelatedAgentArticleList or RelatedCustomerArticleList found for this test.");
810789

811790
next TEST;
812791
}
@@ -820,47 +799,37 @@ for my $Test (@Tests) {
820799
$RelatedArticleFunction = 'RelatedAgentArticleList';
821800
}
822801

823-
# print test case description
824-
if ( $Test->{Description} ) {
825-
$Self->True(
826-
1,
827-
"Test $TestCount: $Test->{Description}",
828-
);
829-
}
802+
subtest "Test $TestCount: $Test->{Description}" => sub {
803+
my @RelatedArticleList;
830804

831-
my @RelatedArticleList;
832-
833-
if ( $Test->{RelatedCustomerArticleList} ) {
834-
835-
@RelatedArticleList = $FAQObject->$RelatedArticleFunction(
836-
%{ $Test->{RelatedCustomerArticleList} },
837-
);
838-
}
839-
else {
840-
@RelatedArticleList = $FAQObject->$RelatedArticleFunction(
841-
%{ $Test->{RelatedAgentArticleList} },
842-
);
843-
}
805+
if ( $Test->{RelatedCustomerArticleList} ) {
806+
@RelatedArticleList = $FAQObject->$RelatedArticleFunction(
807+
%{ $Test->{RelatedCustomerArticleList} },
808+
);
809+
}
810+
else {
811+
@RelatedArticleList = $FAQObject->$RelatedArticleFunction(
812+
%{ $Test->{RelatedAgentArticleList} },
813+
);
814+
}
844815

845-
if ( $Test->{Fails} ) {
846-
$Self->False(
847-
@RelatedArticleList ? 1 : 0,
848-
"Test $TestCount: $RelatedArticleFunction() - should fail.",
849-
);
850-
}
851-
else {
816+
if ( $Test->{Fails} ) {
817+
ok( !@RelatedArticleList, "Test $TestCount: $RelatedArticleFunction() - should fail." );
818+
}
819+
else {
852820

853-
my @RelatedFAQArticleIDs = map { $_->{ItemID} } @RelatedArticleList;
821+
my @RelatedFAQArticleIDs = map { $_->{ItemID} } @RelatedArticleList;
854822

855-
$Self->IsDeeply(
856-
\@RelatedFAQArticleIDs,
857-
$Test->{ReferenceData},
858-
"Test $TestCount: $RelatedArticleFunction() - test the result",
859-
);
823+
is(
824+
\@RelatedFAQArticleIDs,
825+
$Test->{ReferenceData},
826+
"Test $TestCount: $RelatedArticleFunction() - test the result",
827+
);
828+
}
860829
}
861830
}
862831
continue {
863832
$TestCount++;
864833
}
865834

866-
$Self->DoneTesting();
835+
done_testing();

0 commit comments

Comments
 (0)