+ - Warning when you try to import things from MooseX::Types::Common rather
+ than one of the specific String/Numeric modules in the distribution.
0.001001 2010-01-04
- POD updates
0.001000
- - Initial release. This is a spin off from Reaction.
\ No newline at end of file
+ - Initial release. This is a spin off from Reaction.
use strict;
use warnings;
+use Carp qw/cluck/;
our $VERSION = '0.001001';
+sub import {
+ my $package = shift;
+ return unless @_;
+ cluck("Tried to import the symbols " . join(', ', @_)
+ . " from MooseX::Types::Common.\nDid you mean "
+ . "MooseX::Types::Common::String or MooseX::Type::Common::Numeric?");
+}
+
1;
=head1 NAME
--- /dev/null
+use strict;
+use warnings;
+
+use Test::More;
+
+# Test for a warning when you make the stupid mistake I make all the time
+# of saying use MooseX::Types::Common qw/NonEmptySimpleStr/;
+
+BEGIN {
+ eval { require Capture::Tiny }
+ or plan skip_all => 'Capture::Tiny needed for these tests';
+}
+
+plan tests => 4;
+
+use_ok 'MooseX::Types::Common';
+
+my ($stdout, $stderr) = Capture::Tiny::capture(sub {
+ MooseX::Types::Common->import;
+});
+is $stderr, '', 'No warning if nothing imported';
+
+($stdout, $stderr) = Capture::Tiny::capture(sub {
+ MooseX::Types::Common->import('NonEmptySimpleStr');
+});
+like $stderr, qr/Did you mean/, 'Got warning';
+like $stderr, qr/NonEmptySimpleStr/, 'Warning mentions bad type';
+