#########################
use Test::More qw(no_plan);
+use Data::Dumper;
require Test::Harness;
no warnings 'once';
*Verbose = \$Test::Harness::Verbose;
unlike($@, qr/^Invalid version format \(alpha with zero width\)/,
"Invalid version format 1._1");
+ {
+ my $warning;
+ local $SIG{__WARN__} = sub { $warning = $_[0] };
+ eval 'my $v = $CLASS->new(~0);';
+ unlike($@, qr/Integer overflow in version/, "Too large version");
+ like($warning, qr/Integer overflow in version/, "Too large version");
+ }
+
+ {
+ # http://rt.cpan.org/Public/Bug/Display.html?id=30004
+ my $v1 = $CLASS->new("v0.1_1");
+ (my $alpha1 = Dumper($v1)) =~ s/.+'alpha' => ([^,]+),.+/$1/ms;
+ my $v2 = $CLASS->new($v1);
+ (my $alpha2 = Dumper($v2)) =~ s/.+'alpha' => ([^,]+),.+/$1/ms;
+ is $alpha2, $alpha1, "Don't fall for Data::Dumper's tricks";
+ }
+
+ {
+ # http://rt.perl.org/rt3/Ticket/Display.html?id=56606
+ my $badv = bless { version => [1,2,3] }, "version";
+ is $badv, '1.002003', "Deal with badly serialized versions from YAML";
+ my $badv2 = bless { qv => 1, version => [1,2,3] }, "version";
+ is $badv2, 'v1.2.3', "Deal with badly serialized versions from YAML ";
+ }
}
1;