The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

# Check Test::Inline::Script support for older test styles

use strict;
BEGIN {
	$|  = 1;
	$^W = 1;
}

use File::Spec::Functions ':ALL';
use Test::More tests => 7;
use Test::Inline ();





#####################################################################
# Test the examples from Inline.pm
{
	my $inline_file = File::Slurp::read_file(
		catfile( 't', 'data', '10_legacy_extract', 'Inline.pm' ),
		scalar_ref => 1,
		) or die "Failed to load Inline.pm test file";
	is( ref($inline_file), 'SCALAR', 'Loaded Inline.pm examples' );

	# Create the Inline object
	my $Inline = Test::Inline->new();
	isa_ok( $Inline, 'Test::Inline' );	

	# Add the sample source code
	ok( $Inline->_add_source( $inline_file ), 'Inline.pm examples added' );

	# Check the results
	my $Script = $Inline->class('My::Pirate');
	isa_ok( $Script, 'Test::Inline::Script' );
	is( $Script->class, 'My::Pirate', '->class returns as expected' );
	is( $Script->filename, 'my_pirate.t', '->filename gets set as expected' );
	is( $Inline->_content('My::Pirate'), <<'END_SCRIPT', '->_content gets set as expected' );
#!/usr/bin/perl -w

use strict;
use Test::More 'no_plan';
$| = 1;



# =begin testing
{
my @p = is_pirate('Blargbeard', 'Alfonse', 'Capt. Hampton', 'Wesley');
is(@p,  2,   "Found two pirates.  ARRR!");
}



# =for example begin
$::__tc = Test::Builder->new->current_test;
{
eval q{
  my $example = sub {
    local $^W = 0;
    use LWP::Simple;
    getprint "http://www.goats.com";
  };
};
is($@, '', 'Example 1 compiles cleanly');
}
is( Test::Builder->new->current_test - $::__tc, 1,
	'1 test was run in the section' );




1;
END_SCRIPT

}