diff options
Diffstat (limited to 'cpan/CPAN-Meta/t/from-hash.t')
-rw-r--r-- | cpan/CPAN-Meta/t/from-hash.t | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/cpan/CPAN-Meta/t/from-hash.t b/cpan/CPAN-Meta/t/from-hash.t new file mode 100644 index 0000000000..369c45f694 --- /dev/null +++ b/cpan/CPAN-Meta/t/from-hash.t @@ -0,0 +1,48 @@ +use strict; +use warnings; + +use CPAN::Meta::Requirements; + +use Test::More 0.88; + +sub dies_ok (&@) { + my ($code, $qr, $comment) = @_; + + my $lived = eval { $code->(); 1 }; + + if ($lived) { + fail("$comment: did not die"); + } else { + like($@, $qr, $comment); + } +} + +{ + my $string_hash = { + Left => 10, + Shared => '>= 2, <= 9, != 7', + Right => 18, + }; + + my $req = CPAN::Meta::Requirements->from_string_hash($string_hash); + + is_deeply( + $req->as_string_hash, + $string_hash, + "we can load from a string hash", + ); +} + +{ + my $string_hash = { + Left => 10, + Shared => '= 2', + Right => 18, + }; + + dies_ok { CPAN::Meta::Requirements->from_string_hash($string_hash) } + qr/illegal/, + "we die when we can't understand a version spec"; +} + +done_testing; |