The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
=pod

=encoding utf-8

=head1 PURPOSE

Test that warnings are issued for stuff.

=head1 AUTHOR

Toby Inkster E<lt>tobyink@cpan.orgE<gt>.

=head1 COPYRIGHT AND LICENCE

This software is copyright (c) 2013 by Toby Inkster.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut

use strict;
use warnings;
use Test::More;
use Test::Warn;

sub Spec { 123 }

warnings_like {
	eval q/ use Subclass::Of "File::Spec" /;
} qr{^Subclass::Of is overwriting function 'Spec'};

warnings_like {
	eval q/ use Subclass::Of "strict"; use Subclass::Of "strict"; /;
} qr{^Subclass::Of is overwriting alias 'strict'; was '\S+'; now '\S+'};

my ($x, $y);
warnings_are {
	eval q/
		{
			use Subclass::Of "Carp", -methods => [ abc => sub{ 1 } ];
			$x = Carp;
		}
		{
			use Subclass::Of "Carp", -methods => [ xyz => sub{ 1 } ];
			$y = Carp;
		}
	/
} [];

ok($x->can("abc") and not $x->can("xyz"));
ok($y->can("xyz") and not $y->can("abc"));

done_testing;