use
lib
"$FindBin::Bin/lib"
;
my
(
$apiurl
,
$user
,
$password
);
my
(
$out
,(
$code
)) = capture_merged { TestRail::Utils::help() };
is(
$code
,0,
"Help works OK"
);
like(
$out
,
qr/bogus bogus/
i,
"Displays POD OK"
);
is(exception {capture_merged { (
$apiurl
,
$password
,
$user
) = TestRail::Utils::parseConfig(dirname(__FILE__),1) }},
undef
,
"No exceptions thrown by parseConfig in array mode"
);
is(
$user
,
'zippy'
,
"USER parse OK"
);
is(
$password
,
'happy'
,
'PASSWORD parse OK'
);
is(exception {capture_merged {
$out
= TestRail::Utils::parseConfig(dirname(__FILE__))}},
undef
,
"No exceptions thrown by parseConfig default mode"
);
is(
$out
->{user},
'zippy'
,
"USER parse OK"
);
is(
$out
->{password},
'happy'
,
'PASSWORD parse OK'
);
my
@files
;
my
$fcontents
=
''
;
open
(
my
$fh
,
'<'
,
't/test_multiple_files.tap'
) or
die
(
"couldn't open our own test files!!!"
);
while
(<
$fh
>) {
if
(TestRail::Utils::getFilenameFromTapLine(
$_
)) {
push
(
@files
,
$fcontents
)
if
$fcontents
;
$fcontents
=
''
;
}
$fcontents
.=
$_
;
}
close
(
$fh
);
push
(
@files
,
$fcontents
);
is(
scalar
(
@files
),2,
"Detects # of filenames correctly in TAP"
);
$fcontents
=
''
;
@files
= ();
open
(
$fh
,
'<'
,
't/seq_multiple_files.tap'
) or
die
(
"couldn't open our own test files!!!"
);
while
(<
$fh
>) {
if
(TestRail::Utils::getFilenameFromTapLine(
$_
)) {
push
(
@files
,
$fcontents
)
if
$fcontents
;
$fcontents
=
''
;
}
$fcontents
.=
$_
;
}
close
(
$fh
);
push
(
@files
,
$fcontents
);
is(
scalar
(
@files
),7,
"Detects # of filenames correctly in TAP"
);
@files
= TestRail::Utils::TAP2TestFiles(
't/test_multiple_files.tap'
);
is(
scalar
(
@files
),2,
"TAP correctly parsed into right number of bins"
);
@files
= TestRail::Utils::TAP2TestFiles(
't/seq_multiple_files.tap'
);
is(
scalar
(
@files
),7,
"TAP correctly parsed into right number of bins"
);
my
$login_opts
= {
'user'
=>
'teodesian@cpan.org'
,
'password'
=>
'fake'
,
'browser'
=>
$Test::LWP::UserAgent::TestRailMock::mockObject
};
my
$tr
= TestRail::Utils::getHandle(
$login_opts
);
my
$opts
= {
'run'
=>
'TestingSuite'
,
'plan'
=>
'mah dubz plan'
,
'configs'
=> [
'testConfig'
],
'project'
=>
'TestProject'
};
my
(
$project
,
$plan
,
$run
,
$milestone
) = TestRail::Utils::getRunInformation(
$tr
,
$opts
);
is(
$project
->{
'id'
}, 10,
"getRunInformation gets project correctly"
);
is(
$plan
->{
'id'
}, 24,
"getRunInformation gets plan correctly"
);
is(
$run
->{
'id'
}, 1,
"getRunInformation gets run correctly"
);
is(
$milestone
,
undef
,
"getRunInformation returns undef when no milestone set for plan"
);
$opts
->{
'run'
} =
'hoo hoo I do not exist'
;
like(exception { TestRail::Utils::getRunInformation(
$tr
,
$opts
) },
qr/no such run/
i,
"Attempt to find nonexistant run in plan is fatal"
);
$opts
->{
'plan'
} =
'hoo hoo I do not exist'
;
like(exception { TestRail::Utils::getRunInformation(
$tr
,
$opts
) },
qr/no such plan/
i,
"Attempt to find nonexistant plan is fatal"
);
$opts
->{
'project'
} =
'hoo hoo I do not exist'
;
like(exception { TestRail::Utils::getRunInformation(
$tr
,
$opts
) },
qr/no such project/
i,
"Attempt to find nonexistant project is fatal"
);
$opts
->{
'run'
} =
'TestingSuite'
;
$opts
->{
'configs'
} =
undef
;
$opts
->{
'plan'
} =
undef
;
$opts
->{
'project'
} =
'TestProject'
;
(
$project
,
$plan
,
$run
,
$milestone
) = TestRail::Utils::getRunInformation(
$tr
,
$opts
);
is(
$project
->{
'id'
}, 10,
"getRunInformation gets project correctly [run mode]"
);
is(
$plan
->{
'id'
},
undef
,
"getRunInformation gets plan correctly [run mode]"
);
is(
$run
->{
'id'
}, 1,
"getRunInformation gets run correctly [run mode]"
);
is(
$milestone
,
undef
,
"getRunInformation returns undef when no milestone set for run"
);
$opts
->{
'run'
} =
'OtherOtherSuite'
;
(
$project
,
$plan
,
$run
,
$milestone
) = TestRail::Utils::getRunInformation(
$tr
,
$opts
);
is(
$milestone
->{
'id'
},8,
"Milestone acquired correctly in run mode"
);
$opts
->{
'project'
} =
"TestProject"
;
$opts
->{
'plan'
} =
'GosPlan'
;
$opts
->{
'run'
} =
"Executing the great plan"
;
$opts
->{
'configs'
} = [
"testConfig"
];
(
$project
,
$plan
,
$run
,
$milestone
) = TestRail::Utils::getRunInformation(
$tr
,
$opts
);
is(
$milestone
->{
'id'
},8,
"Milestone acquired correctly in plan mode"
);