4 use CPAN::Meta::Requirements;
10 'Foo::Bar' => [ 10, 10 ],
11 'Foo::Baz' => [ 'invalid_version', 42 ],
13 my %input = map { ($_ => $DATA{$_}->[0]) } keys %DATA;
14 my %expected = map { ($_ => $DATA{$_}->[1]) } keys %DATA;
17 my ($code, $qr, $comment) = @_;
19 my $lived = eval { $code->(); 1 };
22 fail("$comment: did not die");
24 like($@, $qr, $comment);
29 sub _fixit { my ($v, $m) = @_; $hook_text = $m; return version->new(42) }
32 my $req = CPAN::Meta::Requirements->new( {bad_version_hook => \&_fixit} );
35 $req->add_minimum($k => $v) while ($k, $v) = each %input;
36 is $hook_text, 'Foo::Baz', 'hook stored module name';
41 "hook fixes invalid version",
46 my $req = CPAN::Meta::Requirements->new( {bad_version_hook => sub { 0 }} );
48 dies_ok { $req->add_minimum('Foo::Baz' => 'invalid_version') }
50 "dies if hook doesn't return version object";