Code-TidyAll
view release on metacpan or search on metacpan
t/lib/TestFor/Code/TidyAll/Plugin.pm view on Meta::CPAN
package TestFor::Code::TidyAll::Plugin;
use strict;
use warnings;
use autodie;
use Capture::Tiny qw(capture);
use Code::TidyAll::Util qw(tempdir_simple);
use Code::TidyAll;
use Path::Tiny qw(path);
use Test::Class::Most parent => 'TestHelper::Test::Class';
use Test::Differences qw( eq_or_diff );
__PACKAGE__->SKIP_CLASS('Virtual base class');
my $Test = Test::Builder->new;
sub startup : Tests(startup => no_plan) {
my $self = shift;
$self->{root_dir} = tempdir_simple();
my @extra = $self->_extra_path();
if (@extra) {
my $sep = $^O eq 'MSWin32' ? q{;} : q{:};
$ENV{PATH} .= $sep if $ENV{PATH};
$ENV{PATH} .= join $sep, @extra;
}
return;
}
sub plugin_class {
my ($self) = @_;
return ( split( '::', ref($self) ) )[-1];
}
sub test_filename {'foo.txt'}
sub tidyall {
my ( $self, %p ) = @_;
my $ct = Code::TidyAll->new(
quiet => 1,
root_dir => $self->{root_dir},
plugins => ( $p{plugin_conf} ? $p{plugin_conf} : $self->_plugin_conf( $p{conf} ) ),
);
my ( $source, $result, $output, $error );
if ( $p{source} ) {
$source = $p{source};
$source =~ s/\\n/\n/g;
( $output, $error ) = capture {
$result = $ct->process_source( $source, $self->test_filename )
};
}
elsif ( $p{source_file} ) {
( $output, $error )
= capture { $result = $ct->process_file( $p{source_file} ) };
}
else {
die 'The tidyall() method requires a source or source_file parameter';
}
my $desc = $p{desc} || $p{source} || $p{source_file};
$Test->diag($output) if $output && $ENV{TEST_VERBOSE};
$Test->diag($error) if $error && $ENV{TEST_VERBOSE};
subtest(
$desc,
( run in 2.945 seconds using v1.01-cache-2.11-cpan-df04353d9ac )