Use Test::Requires instead of hard dep on Test::Warn
[gitmo/Package-DeprecationManager.git] / t / basic.t
index 5c48e63..9538d92 100644 (file)
--- a/t/basic.t
+++ b/t/basic.t
@@ -3,7 +3,10 @@ use warnings;
 
 use Test::Exception;
 use Test::More;
-use Test::Warn;
+
+use Test::Requires {
+    'Test::Warn' => '0.21',
+};
 
 {
     throws_ok {
@@ -44,6 +47,11 @@ use Test::Warn;
             );
         }
     }
+
+    sub varies {
+        deprecated("The varies sub varies: $_[0]");
+    }
+
 }
 
 {
@@ -68,6 +76,18 @@ use Test::Warn;
     ::warning_is{ Foo::bar() } q{}, 'no warning on second call to bar';
 
     ::warning_is{ Foo::baz() } q{}, 'no warning on second call to baz';
+
+    ::warning_is{ Foo::varies(1) }
+        { carped => "The varies sub varies: 1" },
+        'warning for varies sub';
+
+    ::warning_is{ Foo::varies(2) }
+        { carped => "The varies sub varies: 2" },
+        'warning for varies sub with different error';
+
+    ::warning_is{ Foo::varies(1) }
+        q{},
+        'no warning for varies sub with same message as first call';
 }
 
 {
@@ -127,7 +147,7 @@ use Test::Warn;
     use Package::DeprecationManager -deprecations => {
         'foo' => '1.00',
         },
-        -ignore => [ 'My::Foo', 'My::Bar' ];
+        -ignore => [ 'My::Package1', 'My::Package2' ];
 
     sub foo {
         deprecated('foo is deprecated');
@@ -135,23 +155,42 @@ use Test::Warn;
 }
 
 {
-    package My::Foo;
+    package Dep2;
+
+    use Package::DeprecationManager -deprecations => {
+        'bar' => '1.00',
+        },
+        -ignore => [ 'My::Package2' ];
+
+    sub bar {
+        deprecated('bar is deprecated');
+    }
+}
+
+{
+    package My::Package1;
 
     sub foo { Dep::foo() }
+    sub bar { Dep2::bar() }
 }
 
 {
-    package My::Bar;
+    package My::Package2;
 
-    sub foo { My::Foo::foo() }
+    sub foo { My::Package1::foo() }
+    sub bar { My::Package1::bar() }
 }
 
 {
     package My::Baz;
 
-    ::warning_like{ My::Bar::foo() }
+    ::warning_like{ My::Package2::foo() }
         qr/^foo is deprecated at t.basic\.t line \d+/,
-        'deprecation warning for call to My::Bar::foo()';
+        'deprecation warning for call to My::Package2::foo()';
+
+    ::warning_like{ My::Package1::bar() }
+        qr/^bar is deprecated at t.basic\.t line \d+/,
+        'deprecation warning for call to My::Package1::bar()';
 }
 
 {
@@ -159,9 +198,9 @@ use Test::Warn;
 
     Dep->import( -api_version => '0.8' );
 
-    ::warning_is{ My::Bar::foo() }
+    ::warning_is{ My::Package2::foo() }
         q{},
-        'no wanrning when calling My::Bar::foo()';
+        'no warning when calling My::Package2::foo()';
 }
 
 done_testing();