use Test::More tests => 4;

use Module::CPANTS::Analyse;
use Module::CPANTS::Kwalitee::Distros;
use File::Spec::Functions;
use File::Copy qw(copy);
{
    no warnings;
    unlink 'Debian_CPANTS.txt';

    #"mirror" is copied for LWP::Simple to this namespace by Exporter
    *Module::CPANTS::Kwalitee::Distros::mirror = sub ($$) { 
        copy 't/eg/Debian_CPANTS.txt', '.';
    };
}
my $a=Module::CPANTS::Analyse->new({
    dist=>'t/eg/Test-YAML-Meta-0.04.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},35,'files');
is(@{$d->{modules}},2,'module');

$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' => 1,
           'proper_libs' => 1,
           'has_changelog' => 1,
           'no_pod_errors' => 1,
           'use_strict' => 1,
           'kwalitee' => 39,
           'has_test_pod' => 1,
           'has_tests' => 1,
           'easily_repackageable_by_debian' => 1,
           'fits_fedora_license' => 1,
           'has_manifest' => 1,
           'no_symlinks' => 1,
           'has_version' => 1,
           'extractable' => 1,
           'buildtool_not_executable' => 1,
           'has_working_buildtool' => 1,
           'metayml_has_license' => 1,
           'has_humanreadable_license' => 1,
           'no_generated_files' => 1,
           'has_meta_yml' => 1,
           'easily_repackageable_by_fedora' => 1,
           'metayml_conforms_spec_current' => 1,
           'use_warnings' => 1,
           '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' => 1,
           'no_stdin_for_prompting' => 1,
           'metayml_declares_perl_version' => 0,
           'no_large_files' => 1,
           'has_license_in_source_file' => 1,
           'metayml_has_provides'=>1,
           'has_separate_license_file', => 1,
           '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');

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