X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F30-atom-new.t;h=0a14f6f6f56c5294e808e77e60851b18e8779927;hb=d77142c8216a27e216565391d32d2cf3f321f63c;hp=c4dcdbe9282cc2bfbfd37d0ee2d8f86933ca1d73;hpb=9e50d0a5cd63e13e194009d6fbdedb75e75eaa5e;p=perl%2Fmodules%2FCPANPLUS-Dist-Gentoo.git diff --git a/t/30-atom-new.t b/t/30-atom-new.t index c4dcdbe..0a14f6f 100644 --- a/t/30-atom-new.t +++ b/t/30-atom-new.t @@ -3,41 +3,60 @@ use strict; use warnings; -use Test::More tests => 15; +use Test::More tests => 25; use CPANPLUS::Dist::Gentoo::Atom; sub A () { 'CPANPLUS::Dist::Gentoo::Atom' } -my $no_info = qr/^Not enough information/; -my $range_no_ver = qr/^Range atoms require a valid version/; -my $inv_atom = qr/^Invalid atom/; -my $inv_ebuild = qr/^Invalid ebuild/; +my $no_info = qr/^Not enough information/; +my $no_category = qr/^Category unspecified/; +my $range_no_ver = qr/^Range atoms require a valid version/; +my $cant_parse_ver = qr/^Couldn't parse version string/; -my $a0 = { category => 'test', name => 'a' }; -my $a1 = { category => 'test', name => 'a', version => '1.0' }; +sub inv { qr/^Invalid \Q$_[0]\E/ } + +my $a0 = { category => 'test', name => 'a' }; +my $a1 = { category => 'test', name => 'a', version => '1.0' }; +my $a2 = { category => 'test+', name => 'a+b', version => '1.2.3' }; + +my $v0 = bless { }, 'CPANPLUS::Dist::Gentoo::Test::FakeVersion'; +my $v1 = CPANPLUS::Dist::Gentoo::Version->new('0.1.2-r3'); my @tests = ( [ { } => $no_info ], [ { category => 'test' } => $no_info ], + [ { name => 'a' } => $no_category ], + + [ { category => '', name => 'a' } => inv('category') ], + [ { category => 'test$', name => 'a' } => inv('category') ], + [ { category => 'test', name => '' } => inv('name') ], + [ { category => 'test', name => 'a$' } => inv('name') ], + [ $a0 => $a0 ], + [ { %$a0, range => '' } => { %$a0, range => '' } ], [ { %$a0, range => '<=' } => $range_no_ver ], - [ $a1 => { %$a1, range => '=' } ], - [ { %$a1, range => '<=' } => { %$a1, range => '<=' } ], - - [ { atom => 'test/a' } => $a0 ], - [ { atom => 'test/a-1.0' } => { %$a1, range => '=' } ], - [ { atom => '>=test/a-v1.0' } => { %$a1, range => '>=' } ], - [ { atom => '= $inv_atom ], - [ { atom => '>=test/a' } => $range_no_ver ], - - [ { ebuild => undef } => $inv_ebuild ], - [ { ebuild => '/wat/test/a/a.ebuild' } => $inv_ebuild ], - [ { ebuild => '/wat/test/a/a-1.0.ebuild' } => { %$a1, range => '=' } ], - [ { ebuild => '/wat/test/a/b-1.0.ebuild' } => $inv_ebuild ], + + [ $a1 => { %$a1, range => '>=' } ], + [ { %$a1, version => $v0 } => $cant_parse_ver ], + [ { %$a1, version => $v1 } => { %$a1, range => '>=', version => '0.1.2-r3' } ], + [ { %$a1, range => '<>' } => inv('range'), ], + [ { %$a1, range => '<=' } => { %$a1, range => '<=' } ], + + [ { atom => 'test/a' } => $a0 ], + [ { atom => 'test/a-1.0' } => { %$a1, range => '>=' } ], + [ { atom => '=test/a-1.0' } => { %$a1, range => '=' } ], + [ { atom => '= inv('atom') ], + [ { atom => '>=test/a' } => $range_no_ver ], + + [ { ebuild => undef } => inv('ebuild') ], + [ { ebuild => '/wat/test/a/a.ebuild' } => inv('ebuild') ], + [ { ebuild => '/wat/test/a/a-1.0.ebuild' } => { %$a1, range => '>=' } ], + [ { ebuild => '/wat/test/a/b-1.0.ebuild' } => inv('ebuild') ], + [ { ebuild => '/wat/test+/a+b/a+b-1.2.3.ebuild' } => { %$a2, range => '>=' } ], ); -my @fields = qw/range category name version ebuild/; +my @fields = qw; for my $t (@tests) { my ($args, $exp) = @$t;