1use strict;
2use warnings;
3use Test::More 0.88;
4
5use CPAN::Meta;
6use File::Spec;
7use IO::Dir;
8
9sub _slurp { do { local(@ARGV,$/)=shift(@_); <> } }
10
11delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
12
13my $data_dir = IO::Dir->new( 't/data-fixable' );
14my @files = sort grep { /^\w/ } $data_dir->read;
15
16for my $f ( sort @files ) {
17  my $path = File::Spec->catfile('t','data-fixable',$f);
18  my $meta = eval { CPAN::Meta->load_file( $path ) };
19  ok( defined $meta, "load_file('$f')" ) or diag $@;
20  my $string = _slurp($path);
21  my $method =  $path =~ /\.json/ ? "load_json_string" : "load_yaml_string";
22  my $meta2 = eval { CPAN::Meta->$method( $string, { fix_errors => 1 } ) };
23  ok( defined $meta2, "$method(slurp('$f'))" ) or diag $@;
24}
25
26done_testing;
27
28