sub
name {
$_
[0]->{
'Name'
} }
sub
description { ICANN::RST::Text->new(
$_
[0]->{
'Description'
}) }
sub
oteOnly {
$_
[0]->{
'OTE-Only'
} }
sub
suites {
my
$self
=
shift
;
my
%suites
;
foreach
my
$suite
(
$self
->spec->suites) {
foreach
my
$id
(@{
$self
->{
'Test-Suites'
}}) {
$suites
{
$suite
->id} =
$suite
if
(
$id
eq
$suite
->id && !
defined
(
$suites
{
$suite
->id}));
}
}
return
sort
{
$a
->order <=>
$b
->order }
values
(
%suites
);
}
sub
cases {
my
$self
=
shift
;
my
%cases
;
foreach
my
$suite
(
$self
->suites) {
foreach
my
$case
(
$suite
->cases) {
$cases
{
$case
->id} =
$case
unless
(
defined
(
$cases
{
$case
->id}));
}
}
return
sort
{
$a
->id cmp
$b
->id }
values
(
%cases
);
}
sub
inputs {
my
$self
=
shift
;
my
%inputs
;
foreach
my
$suite
(
$self
->suites) {
foreach
my
$input
(
$suite
->inputs) {
$inputs
{
$input
->id} =
$input
unless
(
defined
(
$inputs
{
$input
->id}));
}
}
return
sort
{
$a
->id cmp
$b
->id }
values
(
%inputs
);
}
sub
resources {
my
$self
=
shift
;
my
%resources
;
foreach
my
$suite
(
$self
->suites) {
foreach
my
$resource
(
$suite
->resources) {
$resources
{
$resource
->id} =
$resource
unless
(
defined
(
$resources
{
$resource
->id}));
}
}
return
sort
{
$a
->id cmp
$b
->id }
values
(
%resources
);
}
sub
errors {
my
$self
=
shift
;
my
%errors
;
foreach
my
$suite
(
$self
->suites) {
foreach
my
$error
(
$suite
->errors) {
$errors
{
$error
->id} =
$error
unless
(
defined
(
$errors
{
$error
->id}));
}
}
return
sort
{
$a
->id cmp
$b
->id }
values
(
%errors
);
}
sub
graph {
my
$self
=
shift
;
my
$graph
= ICANN::RST::Graph->new;
$graph
->add_node(
'name'
=>
'START'
,
'shape'
=>
'box'
,
);
foreach
my
$suite
(
$self
->suites) {
$graph
->add_node(
'name'
=>
$suite
->id,
'shape'
=>
'box'
,
);
$graph
->add_edge(
'from'
=>
'START'
,
'to'
=>
$suite
->id,
);
$graph
->push_subgraph(
'name'
=>
'cluster_'
.
$suite
->id,
'graph'
=> {
'bgcolor'
=>
'#F8F8F8'
},
);
my
@cases
=
$suite
->cases;
$graph
->add_edge(
'from'
=>
$suite
->id,
'to'
=>
$cases
[0]->id,
);
$graph
->add_cases(
@cases
);
$graph
->pop_subgraph;
}
return
$graph
;
}
1;