X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F20-version.t;fp=t%2F20-version.t;h=16294aeb50814e41481a68d6111e80694dbaff34;hb=00e09b5e966914ebedb5c08927cf5a66af177171;hp=0000000000000000000000000000000000000000;hpb=0d54c05d27e53e16bc97eb47d63f11fc85e34f74;p=perl%2Fmodules%2FCPANPLUS-Dist-Gentoo.git diff --git a/t/20-version.t b/t/20-version.t new file mode 100644 index 0000000..16294ae --- /dev/null +++ b/t/20-version.t @@ -0,0 +1,57 @@ +#!perl -T + +use strict; +use warnings; + +use Test::More tests => 2 + 21 * (3 + 2); + +use CPANPLUS::Dist::Gentoo::Version; + +sub V () { 'CPANPLUS::Dist::Gentoo::Version' } + +eval { V->new('dongs') }; +like $@, qr/Couldn't\s+parse\s+version\s+string/, "V->('dongs')"; + +eval { my $res = 'dongs' < V->new(1) }; +like $@, qr/Couldn't\s+parse\s+version\s+string/, "'dongs' < V->new(1)"; + +my @tests = ( + [ 0, 0, 0 ], + [ 1, 0, 1 ], + [ 0, 1, -1 ], + [ 1, 1, 0 ], + + [ '1.0', 1, 0 ], + [ '1.1', 1, 1 ], + [ '1.1', '1.0', 1 ], + [ 1, '1.0', 0 ], + [ 1, '1.1', -1 ], + [ '1.0', '1.1', -1 ], + + [ '1.0_p0', '1.0_p0', 0 ], + [ '1.0_p0', '1.0_p1', -1 ], + [ '1.1_p0', '1.0_p1', 1 ], + [ '1.1_p0', '1.1_p0.1', -1 ], + [ '1.1_p0.1', '1.1_p0.1', 0 ], + + [ '1.2_p0-r0', '1.2_p0', 0 ], + [ '1.2_p0-r1', '1.2_p0', 1 ], + [ '1.2-r0', '1.2_p0', 0 ], + [ '1.2-r1', '1.2_p0', 1 ], + [ '1.2-r1', '1.2_p1', -1 ], + [ '1.2-r2', '1.2_p1', -1 ], +); + +for (@tests) { + my ($s1, $s2, $res) = @$_; + + my $v1 = V->new($s1); + my $v2 = V->new($s2); + + is $s1 <=> $v2, $res, "'$s1' <=> V->new('$s2')"; + is $v1 <=> $s2, $res, "V->new('$s1') <=> '$s2'"; + is $v1 <=> $v2, $res, "V->new('$s1') <=> V->new('$s2')"; + + cmp_ok "$v1", 'eq', $s1, "V->new('$s1') eq '$s1'"; + cmp_ok "$v2", 'eq', $s2, "V->new('$s2') eq '$s2'"; +}