File: validator.t

package info (click to toggle)
libcpan-meta-perl 2.120921-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 620 kB
  • sloc: perl: 2,166; makefile: 2
file content (37 lines) | stat: -rw-r--r-- 940 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use strict;
use warnings;
use Test::More 0.88;

use CPAN::Meta;
use CPAN::Meta::Validator;
use File::Spec;
use IO::Dir;
use Parse::CPAN::Meta 1.4400;

delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults

{
  my $data_dir = IO::Dir->new( 't/data' );
  my @files = sort grep { /^\w/ } $data_dir->read;

  for my $f ( @files ) {
    my $meta = Parse::CPAN::Meta->load_file( File::Spec->catfile('t','data',$f) );
    my $cmv = CPAN::Meta::Validator->new({%$meta});
    ok( $cmv->is_valid, "$f validates" )
      or diag( "ERRORS:\n" . join( "\n", $cmv->errors ) );
  }
}

{
  my $data_dir = IO::Dir->new( 't/data-fail' );
  my @files = sort grep { /^\w/ } $data_dir->read;

  for my $f ( @files ) {
    my $meta = Parse::CPAN::Meta->load_file( File::Spec->catfile('t','data-fail',$f) );
    my $cmv = CPAN::Meta::Validator->new({%$meta});
    ok( ! $cmv->is_valid, "invalid $f doesn't validate" );
  }
}

done_testing;