ARGV-Struct
view release on metacpan or search on metacpan
t/03_conformance.t view on Meta::CPAN
#!/usr/bin/env perl
use Test::More;
use ARGV::Struct;
my @tests = (
{ argv => [ qw/{ X Y }/ ],
struct => { X => 'Y' },
},
{ argv => [ qw/{ X: Y }/ ],
struct => { X => 'Y' },
},
{ argv => [ qw/{ X:: Y }/ ],
struct => { 'X:' => 'Y' },
},
{ argv => [ qw/{ X Y Y { A X } }/ ],
struct => { X => 'Y', Y => { A => 'X' } }
},
{ argv => [ qw/{ X: Y Y: { A: X } }/ ],
struct => { X => 'Y', Y => { A => 'X' } }
},
{ argv => [ qw/{ X Y Y [ 1 2 3 ] Z 3 }/ ],
struct => { X => 'Y', Y => [ 1, 2, 3 ], Z => 3 }
},
{ argv => [ qw/[ ]/ ],
struct => [ ],
},
{ argv => [ qw/[ X=Y ]/ ],
struct => [ 'X=Y' ],
},
{ argv => [ qw/[ A B ] /],
struct => [ 'A', 'B' ],
},
{ argv => [ qw/[ A: B ] /],
struct => [ 'A:', 'B' ],
},
{ argv => [ qw/[ [ 1 2 3 ] [ 4 5 6 ] [ 7 8 9 ] ]/],
struct => [ [1,2,3],[4,5,6],[7,8,9]],
},
{ argv => [ qw/[ { Name X } { Name Y } ]/],
struct => [ { Name => 'X' }, { Name => 'Y' } ],
},
{ argv => [ qw/[ { Name X: } { Name Y: } ]/],
struct => [ { Name => 'X:' }, { Name => 'Y:' } ],
},
{ argv => [ '{', 'X', ' Y ', '}' ],
struct => { X => ' Y ' },
},
{ argv => [ '{', 'X', 'Y=Y', '}' ],
struct => { X => 'Y=Y' },
},
);
foreach $test (@tests) {
eval {
is_deeply(
ARGV::Struct->new(argv => $test->{ argv })->parse,
$test->{ struct },
"Conformance of " . join ' ', @{ $test->{ argv } }
);
};
if ($@){
fail((join ' ', @{ $test->{ argv } }) . " DIED $@");
( run in 0.752 second using v1.01-cache-2.11-cpan-39bf76dae61 )