TestRail-API-sections.t 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. use strict;
  2. use warnings;
  3. use FindBin;
  4. use lib "$FindBin::Bin/lib";
  5. use TestRail::API;
  6. use Test::LWP::UserAgent::TestRailMock;
  7. use Test::More tests => 2;
  8. use Test::Fatal;
  9. use Test::Deep;
  10. use Scalar::Util ();
  11. use Capture::Tiny qw{capture};
  12. my $apiurl = $ENV{'TESTRAIL_API_URL'};
  13. my $login = $ENV{'TESTRAIL_USER'};
  14. my $pw = $ENV{'TESTRAIL_PASSWORD'};
  15. #Mock if nothing is provided
  16. my $is_mock = (!$apiurl && !$login && !$pw);
  17. ($apiurl,$login,$pw) = ('http://testrail.local','teodesian@cpan.org','fake') if $is_mock;
  18. my $tr = new TestRail::API($apiurl,$login,$pw,undef,1);
  19. #Mock if necesary
  20. $tr->{'debug'} = 0;
  21. $tr->{'browser'} = $Test::LWP::UserAgent::TestRailMock::mockObject if $is_mock;
  22. #This is a mock-only test.
  23. my $project = $tr->getProjectByName('zippy');
  24. my $suite = $tr->getTestSuiteByName($project->{'id'},'Master');
  25. my $section = $tr->getSectionByName($project->{'id'},$suite->{'id'},'Recursing section');
  26. my $children = $tr->getChildSections($project->{'id'},$section);
  27. my @expected = qw{child grandchild great-grandchild};
  28. my @actual = map {$_->{'name'} } @$children;
  29. cmp_bag(\@actual,\@expected,"Got child suites recursively");
  30. cmp_bag($tr->getChildSections($project->{'id'},{ 'suite_id' => 999999999999999, 'id' => 9999999999999999 }),[],"Nothing returned when bogus section passed");
  31. 1;