File Coverage

blib/lib/XML/EPP/Command.pm
Criterion Covered Total %
statement 1 3 33.3
branch n/a
condition n/a
subroutine 1 1 100.0
pod n/a
total 2 4 50.0


line stmt bran cond sub pod time code
1              
2             package XML::EPP::Command;
3              
4 1     1   2930 use Moose;
  0            
  0            
5             use MooseX::Method::Signatures;
6             use Moose::Util::TypeConstraints;
7             use PRANG::Graph;
8             our $SCHEMA_PKG = "XML::EPP";
9              
10             use XML::EPP::Extension;
11             use XML::EPP::SubCommand;
12             use XML::EPP::Login;
13              
14             our $PKG = __PACKAGE__;
15              
16             # ok so this one is a bit different to the parent; we can't tell the
17             # name of the node just from the type of it. We'll need to store it
18             # separately.
19             subtype "${PKG}::choice0"
20             => as join("|", "Bool", map { "${SCHEMA_PKG}::$_" }
21             qw(readWriteType loginType
22             pollType transferType)),
23             ;
24              
25             enum "${PKG}::actions" => qw( check create delete info login logout
26             poll renew transfer update);
27              
28             # and here is the extra field
29             has 'action' =>
30             is => "rw",
31             isa => "${PKG}::actions",
32             predicate => "has_action",
33             ;
34              
35             # these are all maxOccurs = 1 (the default), so we don't need to worry
36             # about keeping multiple of them.
37             has_element 'argument' =>
38             is => "rw",
39             isa => "${PKG}::choice0",
40             predicate => "has_argument",
41             xml_nodeName => {
42             check => "${SCHEMA_PKG}::SubCommand",
43             create => "${SCHEMA_PKG}::SubCommand",
44             delete => "${SCHEMA_PKG}::SubCommand",
45             info => "${SCHEMA_PKG}::SubCommand",
46             renew => "${SCHEMA_PKG}::SubCommand",
47             update => "${SCHEMA_PKG}::SubCommand",
48              
49             login => "${SCHEMA_PKG}::Login",
50             logout => "Bool",
51             transfer => "${SCHEMA_PKG}::Transfer",
52             poll => "${SCHEMA_PKG}::Poll",
53             },
54             xml_nodeName_attr => "action",
55             ;
56              
57             has_element 'extension' =>
58             is => "rw",
59             isa => "${SCHEMA_PKG}::extAnyType",
60             predicate => "has_extension",
61             ;
62              
63             has_element 'client_id' =>
64             is => "rw",
65             isa => "${SCHEMA_PKG}::trIDStringType",
66             predicate => "has_client_id",
67             xml_nodeName => "clTRID",
68             ;
69              
70             with 'XML::EPP::Node';
71              
72             subtype "${SCHEMA_PKG}::commandType"
73             => as __PACKAGE__;
74              
75             sub is_command { 1 }
76              
77             1;