File Coverage

blib/lib/SOAP/WSDL/XSD/Typelib/Builtin/boolean.pm
Criterion Covered Total %
statement 30 30 100.0
branch 14 14 100.0
condition 13 14 92.8
subroutine 11 11 100.0
pod 0 5 0.0
total 68 74 91.8


line stmt bran cond sub pod time code
1             package SOAP::WSDL::XSD::Typelib::Builtin::boolean;
2 38     38   24542 use strict;
  38         72  
  38         1249  
3 38     38   212 use warnings;
  38         66  
  38         1754  
4 38     38   1406 use Class::Std::Fast::Storable constructor => 'none', cache => 1;
  38         32613  
  38         293  
5              
6             our $VERSION = $SOAP::WSDL::VERSION;
7              
8 38     38   6323 use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType);
  38         90  
  38         10334  
9              
10             sub serialize {
11 10   100 10 0 45 $_[1] ||= {};
12 10         30 my $value =$_[0]->get_value();
13 10 100       53 return $_[0]->start_tag({ %{$_[1]}, nil => 1})
  1         6  
14             if not defined $value;
15 9 100 100     41 return join q{}
16             , $_[0]->start_tag($_[1])
17             , $value && $value ne 'false' ? 'true' : 'false'
18             , $_[0]->end_tag($_[1]);
19             }
20              
21             sub as_string :STRINGIFY {
22 7     7 0 1652 my $value = $_[0]->get_value();
23 7 100       53 return q{} if not defined $value;
24 5 100 100     45 return ($value && $value ne 'false') ? 1 : 0;
25 38     38   240 }
  38         66  
  38         307  
26              
27             sub as_num :NUMERIFY :BOOLIFY {
28 10     10 0 242 my $value = $_[0]->get_value();
29 10 100 100     196 return ($value && $value ne 'false') ? 1 : 0;
30 38     38   11505 }
  38         73  
  38         190  
31              
32             sub set_value {
33 5 100 66 5 0 735 $_[0]->SUPER::set_value( defined $_[1]
    100          
34             ? ($_[1] ne 'false' && ($_[1]) )
35             ? 1 : 0
36             : 0);
37             }
38              
39 1     1 0 7 sub delete_value { $_[0]->SUPER::set_value(undef) }
40              
41             Class::Std::Fast::initialize(); # make :BOOLIFY overloading serializable
42              
43             1;