Analizo
view release on metacpan or search on metacpan
t/Analizo/Extractor.t view on Meta::CPAN
my $language = {};
$extractor->filters($language);
$filters = $extractor->filters;
is($language, $filters->[0]);
}
sub must_consider_only__supported_languages : Tests {
my $extractor = Analizo::Extractor->new;
my @processed = ();
no warnings;
local *Analizo::Extractor::actually_process = sub {
my ($self, @options) = @_;
@processed = @options;
};
use warnings;
my $path = 't/samples/mixed';
$extractor->process($path);
@processed = sort @processed;
my @expected = qw(
t/samples/mixed/Backend.java
t/samples/mixed/CSharp_Backend.cs
t/samples/mixed/UI.java
t/samples/mixed/native_backend.c
);
is_deeply(\@processed, \@expected);
}
sub must_filter_input_with_language_filter : Tests {
my @processed = ();
no warnings;
local *Analizo::Extractor::actually_process = sub {
my ($self, @options) = @_;
@processed = @options;
};
my $extractor = Analizo::Extractor->new;
$extractor->filters(Analizo::LanguageFilter->new('java'));
$extractor->process('t/samples/mixed');
my @expected = ('t/samples/mixed/Backend.java', 't/samples/mixed/UI.java');
@processed = sort(@processed);
is_deeply(\@processed, \@expected);
}
sub must_create_filters_for_excluded_dirs : Tests {
my $extractor = Analizo::Extractor->new;
my $filters = $extractor->filters;
is(scalar @$filters, 0);
# addding the first excluded directory filter also adds a null language filter
$extractor->exclude('test');
$filters = $extractor->filters;
is(scalar @$filters, 2);
$extractor->exclude('uitest');
$filters = $extractor->filters;
is(scalar(@$filters), 3);
}
sub must_not_process_files_in_excluded_dirs : Tests {
my @processed = ();
no warnings;
local *Analizo::Extractor::actually_process = sub {
my ($self, @options) = @_;
@processed = sort(@options);
};
use warnings;
my $extractor = Analizo::Extractor->new;
$extractor->exclude('t/samples/multidir/cpp/test');
$extractor->process('t/samples/multidir/cpp');
is_deeply(\@processed, ['t/samples/multidir/cpp/hello.cc', 't/samples/multidir/cpp/src/hello.cc', 't/samples/multidir/cpp/src/hello.h']);
}
sub must_not_exclude_everything_in_the_case_of_unexisting_excluded_dir : Tests {
my @processed = ();
no warnings;
local *Analizo::Extractor::actually_process = sub {
my ($self, @options) = @_;
@processed = sort(@options);
};
use warnings;
my $extractor = Analizo::Extractor->new;
ok(! -e 't/samples/animals/cpp/test');
$extractor->exclude('t/samples/animals/cpp/test'); # does not exist!
$extractor->process('t/samples/animals/cpp');
isnt(0, scalar @processed);
}
sub must_not_ignore_filter_by_default : Tests {
no warnings;
local *Analizo::Extractor::apply_filters = sub {
die "apply_filters() was called"
};
use warnings;
my $extractor = Analizo::Extractor->new;
dies_ok { $extractor->process('t/samples/mixed') };
}
sub force_ignore_filter : Tests {
no warnings;
local *Analizo::Extractor::use_filters = sub {
0;
};
local *Analizo::Extractor::apply_filters = sub {
die "apply_filters() was called"
};
use warnings;
my $extractor = Analizo::Extractor->new;
lives_ok { $extractor->process('t/samples/mixed') };
}
__PACKAGE__->runtests;
( run in 0.347 second using v1.01-cache-2.11-cpan-d7f47b0818f )