our
$VERSION
= v0.06;
sub
_new {
my
(
$pkg
,
%opts
) =
@_
;
my
$self
=
$pkg
->SUPER::_new(
%opts
);
my
%tests
;
my
$failed
;
my
%passed_by_class
;
$self
->{tests} = \
%tests
;
foreach
my
$name
(File::Information::VerifyTestResult->_supported_tests) {
my
$res
= File::Information::VerifyTestResult->_new(
test
=>
$name
,
%opts
{
'instance'
,
'base'
,
'base_from'
,
'base_to'
,
'extractor'
,
'db'
,
'lifecycle_from'
,
'lifecycle_to'
});
my
$class
=
$res
->can(
'_class'
) ?
$res
->_class :
$res
->isa(__PACKAGE__) ? File::Information::VerifyTestResult->CLASS_STRONG : File::Information::VerifyTestResult->CLASS_WEAK;
$tests
{
$name
} =
$res
;
$failed
||=
$res
->has_failed;
$passed_by_class
{
$class
} ||=
$res
->has_passed;
}
if
(
$failed
) {
$self
->{status} =
$pkg
->STATUS_FAILED;
}
elsif
(
$passed_by_class
{File::Information::VerifyTestResult->CLASS_METADATA} &&
$passed_by_class
{File::Information::VerifyTestResult->CLASS_STRONG}) {
$self
->{status} =
$pkg
->STATUS_PASSED;
}
elsif
(
scalar
grep
{
$_
}
values
%passed_by_class
) {
$self
->{status} =
$pkg
->STATUS_INSUFFICIENT_DATA;
}
else
{
$self
->{status} =
$pkg
->STATUS_NO_DATA;
}
return
$self
;
}
1;