summaryrefslogtreecommitdiff
path: root/cpan/CPAN-Meta/t/from-hash.t
diff options
context:
space:
mode:
Diffstat (limited to 'cpan/CPAN-Meta/t/from-hash.t')
-rw-r--r--cpan/CPAN-Meta/t/from-hash.t48
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;