File Coverage

blib/lib/Mock/Data/Plugin/Net.pm
Criterion Covered Total %
statement 10 10 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod 3 4 75.0
total 18 19 94.7


line stmt bran cond sub pod time code
1             package Mock::Data::Plugin::Net;
2 2     2   1370 use Mock::Data::Plugin -exporter_setup => 1;
  2         6  
  2         18  
3             our @generators= qw( ipv4 cidr macaddr );
4             export(@generators);
5              
6             our $VERSION = '0.04'; # VERSION
7             # ABSTRACT: Collection of generators for Internet-related data
8              
9              
10             sub apply_mockdata_plugin {
11 1     1 0 3 my ($class, $mock)= @_;
12 1         18 $mock->add_generators(
13             map +("Net::$_" => $class->can($_)), @generators
14             );
15             }
16              
17              
18             sub ipv4 {
19 10     10 1 101 sprintf "127.%d.%d.%d", rand 256, rand 256, 1+rand 254;
20             }
21              
22              
23             sub cidr {
24 10     10 1 36 my $blank= 1 + int rand 23;
25 10         60 my $val= (int rand(1<<(24 - $blank))) << $blank;
26 10         127 sprintf '127.%d.%d.%d/%d', (unpack 'C4', pack 'N', $val)[1,2,3], 32 - $blank;
27             }
28              
29              
30             sub macaddr {
31 10     10 1 108 sprintf '%02x:%02x:%02x:%02x:%02x:%02x',
32             ((rand 64)<<2) | 0x02, rand 256, rand 256,
33             rand 256, rand 256, rand 256
34             }
35              
36             1;
37              
38             __END__