|
Packit |
90fbfc |
use strict;
|
|
Packit |
90fbfc |
use warnings;
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
use Test::More;
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
use CPAN::Changes;
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
my $changes = CPAN::Changes->load_string(<<'END_CHANGES');
|
|
Packit |
90fbfc |
1.05 2011-04-17
|
|
Packit |
90fbfc |
[A]
|
|
Packit |
90fbfc |
- stuff
|
|
Packit |
90fbfc |
[B]
|
|
Packit |
90fbfc |
- mo' stuff
|
|
Packit |
90fbfc |
1.04 2011-04-16
|
|
Packit |
90fbfc |
[C]
|
|
Packit |
90fbfc |
- stuff
|
|
Packit |
90fbfc |
[D]
|
|
Packit |
90fbfc |
- mo' stuff
|
|
Packit |
90fbfc |
END_CHANGES
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
like $changes->serialize => expected_order(qw/ A B C D/ );
|
|
Packit |
90fbfc |
like $changes->serialize( group_sort => \&reverse_order ) => expected_order(qw/ B A D C/ );
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
my ($release) = reverse $changes->releases;
|
|
Packit |
90fbfc |
like $release->serialize => expected_order(qw/ A B / );
|
|
Packit |
90fbfc |
like $release->serialize( group_sort => \&reverse_order ) => expected_order(qw/ B A / );
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
is_deeply [ $release->groups ], [qw/ A B /];
|
|
Packit |
90fbfc |
is_deeply [ $release->groups( sort => \&reverse_order ) ], [qw/ B A /];
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
sub reverse_order {
|
|
Packit |
90fbfc |
return reverse sort @_;
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
sub expected_order {
|
|
Packit |
90fbfc |
my @groups = @_;
|
|
Packit |
90fbfc |
my $re = join '.*', map { "\\[$_\\]" } @groups;
|
|
Packit |
90fbfc |
return qr/$re/s;
|
|
Packit |
90fbfc |
}
|
|
Packit |
90fbfc |
|
|
Packit |
90fbfc |
done_testing;
|