The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More tests => 18;

use Module::CPANTS::Analyse;
use File::Spec::Functions;
use Test::Deep;

my $a=Module::CPANTS::Analyse->new({
    dist=>'t/eg/Acme-DonMartin-0.06.tar.gz',
    _dont_cleanup=>$ENV{DONT_CLEANUP},
});

my $rv=$a->unpack;
is($rv,undef,'unpack ok');

$a->analyse;

my $d=$a->d;

is($d->{files},9,'files');
is($d->{size_packed},7736,'size_packed');
is(ref($d->{modules}),'ARRAY','modules is ARRAY');
is($d->{modules}[0]->{module},'Acme::DonMartin','module');
is(ref($d->{prereq}),'ARRAY','prereq is ARRAY');
is($d->{prereq}[0]->{requires},'Compress::Zlib','prereq');
is(ref($d->{uses}),'HASH','uses is HASH');
is($d->{uses}{'Compress::Zlib'}{module},'Compress::Zlib','uses Compress::Zlib in module');
is($d->{uses}{'Test::More'}{in_tests},1,'uses Test::More in tests');
ok($d->{file_meta_yml},'has_yaml');
ok($d->{metayml_is_parsable},'metayml_is_parsable');
ok(!$d->{metayml_parse_error},'metayml_parse_error was not set');
ok(!$d->{license},'no license in META.yml');


$a->calc_kwalitee;

my $kw=$a->d->{kwalitee};
my $expected_kwalitee =  {
           'extracts_nicely' => 1,
           'has_buildtool' => 1,
           'has_readme' => 1,
           'manifest_matches_dist' => 1,
           'has_example' => 1,
           'has_test_pod_coverage' => 1,
           'metayml_is_parsable' => 1,
           'easily_repackageable' => 0,
           'proper_libs' => 1,
           'has_changelog' => 1,
           'no_pod_errors' => 1,
           'use_strict' => 1,
           'kwalitee' => 28,
           'has_test_pod' => 1,
           'has_tests' => 1,
           'easily_repackageable_by_debian' => 1,
           'fits_fedora_license' => 0,
           'has_manifest' => 1,
           'no_symlinks' => 1,
           'has_version' => 1,
           'extractable' => 1,
           'buildtool_not_executable' => 1,
           'has_working_buildtool' => 1,
           'metayml_has_license' => 0,
           'has_humanreadable_license' => 0,
           'no_generated_files' => 1,
           'has_meta_yml' => 1,
           'easily_repackageable_by_fedora' => 0,
           'metayml_conforms_spec_current' => 0,
           'use_warnings' => 0,
           'no_cpants_errors' => 1,
           'has_version_in_each_file' => 1,
           'has_tests_in_t_dir' => 1,
           'has_proper_version' => 1,
           'metayml_conforms_to_known_spec' => 0,
           'no_stdin_for_prompting' => 1,
           'metayml_declares_perl_version' => 0,
           'no_large_files' => 1,
           'has_separate_license_file' => 0,
           'has_license_in_source_file' => 0,
           'metayml_has_provides'=>0,
           'distributed_by_debian'=>0,
           'latest_version_distributed_by_debian'=>0,
           'has_no_bugs_reported_in_debian'=>0,
           'has_no_patches_in_debian'=>0,
           'uses_test_nowarnings'=>0,
         };

is_deeply($kw, $expected_kwalitee, 'metrics are as expected');

is $a->d->{size_packed}, 7736, 'size_packed';
is $a->d->{size_unpacked}, 14805, 'size_unpacked';
cmp_bag $a->d->{files_array}, [
          'MANIFEST',
          'META.yml',
          'DonMartin.pm',
          'Changes',
          'README',
          'Makefile.PL',
          't/01-basic.t',
          'eg/freq.pl',
          'eg/hello.pl'
        ], 'files_array';


#use Data::Dumper;
#diag(Dumper $kw);
#diag(Dumper $a);