| use strict; |
| use warnings; |
| |
| use Version::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 = Version::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 { Version::Requirements->from_string_hash($string_hash) } |
| qr/illegal/, |
| "we die when we can't understand a version spec"; |
| } |
| |
| done_testing; |