The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strictures  1;
use Test::More  0.96;
use Test::Fatal 0.003;

# !TESTMARKER! do not remove or tests will fail

use syntax qw( io );

do {
    my @lines = io(__FILE__)->getlines;
    ok scalar(grep m{!TESTMARKER!}, @lines), 'found testmarker';
};

use syntax io => { -as => 'fhtagn' };

do {
    my @lines = fhtagn(__FILE__)->getlines;
    ok scalar(grep m{!TESTMARKER!}, @lines), 'found testmarker via renamed';
};

use syntax io => { -as => 'strict_io', -import => [-strict] };

do {
    like exception { strict_io('unknown.txt')->getlines },
         qr{ unknown \. txt }xi,
         'strict option with passed import arguments';
};

do {
    package TestDirectImportArgs;
    use syntax io => [-strict];

    ::like
        ::exception { io('notthere.txt')->getlines },
        qr{ notthere \. txt }xi,
        'strict option directly passed';
};

like exception {
        Syntax::Feature::Io->install(
            into    => 'null',
            options => 'foo',
        );
    },
    qr{
            options \s+ for \s+ Syntax::Feature::Io
        \s+ have \s+ to \s+ be
        .+  array .+ hash .+ ref
    }xism,
    'invalid options';

like exception {
        Syntax::Feature::Io->install(
            into    => 'null',
            options => { -import => 'foo' },
        );
    },
    qr{
            option \s+ -import
        .+  has \s+ to \s+ be
        .+  array .+ ref
    }xism,
    'invalid options';

done_testing;