File Coverage

blib/lib/RPC/ExtDirect/Test/Pkg/Meta.pm
Criterion Covered Total %
statement 77 77 100.0
branch n/a
condition n/a
subroutine 28 28 100.0
pod 0 13 0.0
total 105 118 88.9


line stmt bran cond sub pod time code
1             #
2             # WARNING WARNING WARNING
3             #
4             # DO NOT CHANGE ANYTHING IN THIS MODULE. OTHERWISE, A LOT OF API
5             # AND OTHER TESTS MAY BREAK.
6             #
7             # This module is here to test certain behaviors. If you need
8             # to test something else, add another test module.
9             # It's that simple.
10             #
11              
12             # This does not need to be indexed by PAUSE
13             package
14             RPC::ExtDirect::Test::Pkg::Meta;
15              
16 4     4   1599 use strict;
  4         6  
  4         90  
17 4     4   12 use warnings;
  4         4  
  4         76  
18              
19 4     4   12 use RPC::ExtDirect;
  4         4  
  4         16  
20              
21             sub arg0 : ExtDirect(0, metadata => { len => 2, arg => 0 }) {
22 2     2 0 4 my ($class, $meta) = @_;
23              
24 2         9 return { meta => $meta };
25 4     4   13 }
  4         4  
  4         15  
26              
27             sub arg1_last : ExtDirect(1, metadata => { len => 1, arg => 99, }) {
28 1     1 0 2 my ($class, $arg1, $meta) = @_;
29              
30 1         6 return { arg1 => $arg1, meta => $meta };
31 4     4   443 }
  4         5  
  4         13  
32              
33             sub arg1_first : ExtDirect(1, metadata => { len => 2, arg => 0 }) {
34 1     1 0 3 my ($class, $meta, $arg1) = @_;
35            
36 1         4 return { arg1 => $arg1, meta => $meta };
37 4     4   470 }
  4         5  
  4         42  
38              
39             sub arg2_last : ExtDirect(2, metadata => { len => 1, arg => 99, }) {
40 1     1 0 3 my ($class, $arg1, $arg2, $meta) = @_;
41              
42 1         6 return { arg1 => $arg1, arg2 => $arg2, meta => $meta };
43 4     4   440 }
  4         5  
  4         11  
44              
45             sub arg2_middle : ExtDirect(2, metadata => { len => 2, arg => 1 }) {
46 1     1 0 2 my ($class, $arg1, $meta, $arg2) = @_;
47              
48 1         7 return { arg1 => $arg1, arg2 => $arg2, meta => $meta };
49 4     4   479 }
  4         5  
  4         12  
50              
51             sub named_default : ExtDirect(params => [], metadata => { len => 1 }) {
52 1     1 0 3 my ($class, %arg) = @_;
53              
54 1         3 my $meta = delete $arg{metadata};
55              
56 1         6 return { %arg, meta => $meta };
57 4     4   457 }
  4         6  
  4         11  
58              
59             # One line declarations are intentional; Perls below 5.12 have trouble
60             # parsing attributes spanning multiple lines
61             sub named_arg : ExtDirect(params => [], metadata => { len => 1, arg => 'foo' }) {
62 3     3 0 9 my ($class, %arg) = @_;
63              
64 3         7 my $meta = delete $arg{foo};
65              
66 3         18 return { %arg, meta => $meta };
67 4     4   534 }
  4         6  
  4         12  
68              
69             sub named_strict : ExtDirect(params => [], metadata => { params => ['foo'] }) {
70 1     1 0 3 my ($class, %arg) = @_;
71            
72 1         3 my $meta = delete $arg{metadata};
73              
74 1         6 return { %arg, meta => $meta };
75 4     4   475 }
  4         4  
  4         11  
76              
77             sub named_unstrict : ExtDirect(params => [], metadata => { params => [], strict => !1, arg => '_meta' }) {
78 1     1 0 2 my ($class, %arg) = @_;
79              
80 1         3 my $meta = delete $arg{_meta};
81              
82 1         5 return { %arg, meta => $meta };
83 4     4   509 }
  4         5  
  4         12  
84              
85             sub form_ordered : ExtDirect(formHandler, metadata => { len => 1 }) {
86 1     1 0 3 my ($class, %arg) = @_;
87            
88 1         5 return { %arg };
89 4     4   421 }
  4         4  
  4         14  
90              
91             sub form_named : ExtDirect(formHandler, metadata => { arg => '_m', strict => !1, }) {
92 1     1 0 2 my ($class, %arg) = @_;
93            
94 1         5 return { %arg };
95 4     4   436 }
  4         5  
  4         14  
96              
97             sub aux_hook {
98 1     1 0 5 my ($class, %arg) = @_;
99            
100 1         1 my $method_arg = $arg{arg};
101            
102 1         2 push @$method_arg, $arg{aux_data};
103            
104 1         8 return 1;
105             }
106              
107             sub aux : ExtDirect(0, before => \&aux_hook) {
108 1     1 0 2 my ($class, $aux) = @_;
109            
110 1         3 return { aux => $aux };
111 4     4   560 }
  4         4  
  4         11  
112              
113             1;