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

BEGIN {
  *fh_from_string = $] < 5.008
    ? require IO::Scalar && sub ($) {
      IO::Scalar->new(\$_[0]);
    }
    # hide in an eval'd string so Perl::MinimumVersion doesn't clutch its pearls
    : eval <<'EVAL'
    sub ($) {
      open my $fh, '<', \$_[0];
      $fh
    }
EVAL
  ;
}

{
    my $src = <<'...';
package Foo;
1;
...

    my $fh = fh_from_string($src);
    my $module = Module::Metadata->new_from_handle($fh, 'Foo.pm');
    ok(!$module->contains_pod(), 'This module does not contains POD');
}

{
    my $src = <<'...';
package Foo;
1;

=head1 NAME

Foo - bar
...

    my $fh = fh_from_string($src);
    my $module = Module::Metadata->new_from_handle($fh, 'Foo.pm');
    ok($module->contains_pod(), 'This module contains POD');
}

{
    my $src = <<'...';
package Foo;
1;

=head1 NAME

Foo - bar

=head1 AUTHORS

Tokuhiro Matsuno
...

    my $fh = fh_from_string($src);
    my $module = Module::Metadata->new_from_handle($fh, 'Foo.pm');
    ok($module->contains_pod(), 'This module contains POD');
}