#!/usr/bin/perl -T
use strict;
use warnings;
=head1 TEST PURPOSE
These tests make sure that invalid configurations passed to
setup/build_exporter throw exceptions.
=cut
use Test::More tests => 6;
BEGIN { use_ok('Sub::Exporter'); }
eval {
Sub::Exporter::build_exporter({
exports => [ qw(foo) ],
collectors => [ qw(foo) ],
})
};
like($@, qr/used in both/, "can't use one name in exports and collectors");
eval {
Sub::Exporter::build_exporter({
collections => [ qw(foo) ], # This one gets me all the time. Live & learn.
})
};
like($@, qr/unknown options/, "unknown options raise an exception");
eval {
Sub::Exporter::setup_exporter({
into => 'Your::Face',
into_level => 5,
})
};
like(
$@,
qr/may not both/,
"into and into_level are mutually exclusive (in setup_exporter)"
);
eval {
Sub::Exporter::build_exporter({})->(
Class => {
into => 'Your::Face',
into_level => 1
}
);
};
like(
$@,
qr/may not both/,
"into and into_level are mutually exclusive (in exporter)"
);
eval {
Sub::Exporter::build_exporter({
into => "This::Doesnt::Matter",
into_level => 0,
})
};
like(
$@,
qr(^into and into_level may not both be supplied to exporter),
"can't use one name in exports and collectors"
);