#########################
-use Test::More tests => 202;
+use Test::More qw(no_plan);
diag "Tests with base class" unless $ENV{PERL_CORE};
like($@, qr/underscores before decimal/,
"Invalid version format (underscores before decimal)");
- $version = $CLASS->new("99 and 44/100 pure");
+ eval {my $version = $CLASS->new("1_2")};
+ like($@, qr/alpha without decimal/,
+ "Invalid version format (alpha without decimal)");
+
+ # for this first test, just upgrade the warn() to die()
+ eval {
+ local $SIG{__WARN__} = sub { die $_[0] };
+ $version = $CLASS->new("1.2b3");
+ };
+ my $warnregex = "Version string '.+' contains invalid data; ".
+ "ignoring: '.+'";
+
+ like($@, qr/$warnregex/,
+ "Version string contains invalid data; ignoring");
+
+ # from here on out capture the warning and test independently
+ my $warning;
+ local $SIG{__WARN__} = sub { $warning = $_[0] };
+ $version = $CLASS->new("99 and 44/100 pure");
+
+ like($warning, qr/$warnregex/,
+ "Version string contains invalid data; ignoring");
ok ("$version" eq "99.000", '$version eq "99.000"');
ok ($version->numify == 99.0, '$version->numify == 99.0');
ok ($version->normal eq "v99.0.0", '$version->normal eq v99.0.0');
$version = $CLASS->new("something");
+ like($warning, qr/$warnregex/,
+ "Version string contains invalid data; ignoring");
ok (defined $version, 'defined $version');
# reset the test object to something reasonable