]> git.donarmstrong.com Git - perltidy.git/blobdiff - t/filter_example.t
New upstream version 20210717
[perltidy.git] / t / filter_example.t
diff --git a/t/filter_example.t b/t/filter_example.t
new file mode 100755 (executable)
index 0000000..bdecf44
--- /dev/null
@@ -0,0 +1,70 @@
+# Test use of prefilter and postfilter parameters
+use strict;
+use Carp;
+use Perl::Tidy;
+use Test::More;
+my $name = 'filter_example';
+
+BEGIN {
+    plan tests => 1;
+}
+
+my $source = <<'ENDS';
+use Method::Signatures::Simple;
+
+ method foo1 { $self->bar }
+
+       # with signature
+    method foo2($bar, %opts) { $self->bar(reverse $bar) if $opts{rev};
+    }
+
+    # attributes
+    method foo3 : lvalue { $self->{foo} 
+}
+
+ # change invocant name
+    method 
+foo4 ( $class : $bar ) { $class->bar($bar) }
+ENDS
+
+my $expect = <<'ENDE';
+use Method::Signatures::Simple;
+method foo1 { $self->bar }
+
+# with signature
+method foo2 ( $bar, %opts ) {
+    $self->bar( reverse $bar ) if $opts{rev};
+}
+
+# attributes
+method foo3 : lvalue {
+    $self->{foo};
+}
+
+# change invocant name
+method foo4 ( $class : $bar ) { $class->bar($bar) }
+ENDE
+
+my $output;
+my $stderr_string;
+my $errorfile_string;
+my $params = "";
+my $err    = Perl::Tidy::perltidy(
+
+    #argv => '-npro',  # fix for RT#127679, avoid reading unwanted .perltidyrc
+    argv       => '',
+    perltidyrc => \$params,    # avoid reading unwanted .perltidyrc
+    prefilter =>
+      sub { $_ = $_[0]; s/^\s*method\s+(\w.*)/sub METHOD_$1/gm; return $_ },
+    postfilter  => sub { $_ = $_[0]; s/sub\s+METHOD_/method /gm; return $_ },
+    source      => \$source,
+    destination => \$output,
+    stderr      => \$stderr_string,
+    errorfile => \$errorfile_string,    # not used when -se flag is set
+);
+if ( $err || $stderr_string || $errorfile_string ) {
+    ok(0);
+}
+else {
+    is( $output, $expect, $name );
+}