X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fbasic.t;h=1032d4a0e7c43b35cc981a3cdb73224ecb2f5795;hb=c47a78c60c77b140912b45f3b74a5ffc2c48e2b5;hp=fdf414074d00d10303c4fd31d838d12e99803211;hpb=e546f61d6bd97fad9857cdd34a00cd5906190074;p=gitmo%2FPackage-DeprecationManager.git diff --git a/t/basic.t b/t/basic.t index fdf4140..1032d4a 100644 --- a/t/basic.t +++ b/t/basic.t @@ -1,20 +1,22 @@ use strict; use warnings; -use Test::Exception; use Test::More; +use Test::Fatal; use Test::Requires { - 'Test::Warn' => '0.21', + 'Test::Output' => '0.16', }; { - throws_ok { - eval 'package Foo; use Package::DeprecationManager;'; - die $@ if $@; - } - qr/^\QYou must provide a hash reference -deprecations parameter when importing Package::DeprecationManager/, - 'must provide a set of deprecations when using Package::DeprecationManager'; + like( + exception { + eval 'package Foo; use Package::DeprecationManager;'; + die $@ if $@; + }, + qr/^\QYou must provide a hash reference -deprecations parameter when importing Package::DeprecationManager/, + 'must provide a set of deprecations when using Package::DeprecationManager' + ); } { @@ -59,33 +61,33 @@ use Test::Requires { Foo->import(); - ::warning_is{ Foo::foo() } - { carped => 'foo is deprecated' }, + ::stderr_like{ Foo::foo() } + qr/\Qfoo is deprecated/, 'deprecation warning for foo'; - ::warning_is{ Foo::bar() } - { carped => 'bar is deprecated' }, + ::stderr_like{ Foo::bar() } + qr/\Qbar is deprecated/, 'deprecation warning for bar'; - ::warning_is{ Foo::baz() } - { carped => 'Foo::baz has been deprecated since version 1.21' }, + ::stderr_like{ Foo::baz() } + qr/\QFoo::baz has been deprecated since version 1.21/, 'deprecation warning for baz, and message is generated by Package::DeprecationManager'; - ::warning_is{ Foo::foo() } q{}, 'no warning on second call to foo'; + ::stderr_is{ Foo::foo() } q{}, 'no warning on second call to foo'; - ::warning_is{ Foo::bar() } q{}, 'no warning on second call to bar'; + ::stderr_is{ Foo::bar() } q{}, 'no warning on second call to bar'; - ::warning_is{ Foo::baz() } q{}, 'no warning on second call to baz'; + ::stderr_is{ Foo::baz() } q{}, 'no warning on second call to baz'; - ::warning_is{ Foo::varies(1) } - { carped => "The varies sub varies: 1" }, + ::stderr_like{ Foo::varies(1) } + qr/\QThe varies sub varies: 1/, 'warning for varies sub'; - ::warning_is{ Foo::varies(2) } - { carped => "The varies sub varies: 2" }, + ::stderr_like{ Foo::varies(2) } + qr/\QThe varies sub varies: 2/, 'warning for varies sub with different error'; - ::warning_is{ Foo::varies(1) } + ::stderr_is{ Foo::varies(1) } q{}, 'no warning for varies sub with same message as first call'; } @@ -95,15 +97,15 @@ use Test::Requires { Foo->import( -api_version => '0.01' ); - ::warning_is{ Foo::foo() } + ::stderr_is{ Foo::foo() } q{}, 'no warning for foo with api_version = 0.01'; - ::warning_is{ Foo::bar() } + ::stderr_is{ Foo::bar() } q{}, 'no warning for bar with api_version = 0.01'; - ::warning_is{ Foo::baz() } + ::stderr_is{ Foo::baz() } q{}, 'no warning for baz with api_version = 0.01'; } @@ -113,15 +115,15 @@ use Test::Requires { Foo->import( -api_version => '1.17' ); - ::warning_is{ Foo::foo() } - { carped => 'foo is deprecated' }, + ::stderr_like{ Foo::foo() } + qr/\Qfoo is deprecated/, 'deprecation warning for foo with api_version = 1.17'; - ::warning_is{ Foo::bar() } - { carped => 'bar is deprecated' }, + ::stderr_like{ Foo::bar() } + qr/\Qbar is deprecated/, 'deprecation warning for bar with api_version = 1.17'; - ::warning_is{ Foo::baz() } + ::stderr_is{ Foo::baz() } q{}, 'no warning for baz with api_version = 1.17'; } @@ -131,12 +133,12 @@ use Test::Requires { Foo->import(); - ::warning_is{ Foo::quux(1) } + ::stderr_is{ Foo::quux(1) } q{}, 'no warning for quux(1)'; - ::warning_is{ Foo::quux(10) } - { carped => 'quux > 5 has been deprecated' }, + ::stderr_like{ Foo::quux(10) } + qr/\Qquux > 5 has been deprecated/, 'got a warning for quux(10)'; } @@ -145,7 +147,7 @@ use Test::Requires { package Dep; use Package::DeprecationManager -deprecations => { - 'foo' => '1.00', + 'Dep::foo' => '1.00', }, -ignore => [ 'My::Package1', 'My::Package2' ]; @@ -158,9 +160,9 @@ use Test::Requires { package Dep2; use Package::DeprecationManager -deprecations => { - 'bar' => '1.00', + 'Dep2::bar' => '1.00', }, - -ignore => [ 'My::Package2' ]; + -ignore => [ qr/My::Package[12]/ ]; sub bar { deprecated('bar is deprecated'); @@ -168,24 +170,10 @@ use Test::Requires { } { - package Dep3; - - use Package::DeprecationManager -deprecations => { - 'baz' => '1.00', - }, - -ignore => [ qr/My::Package[12]/ ]; - - sub baz { - deprecated('baz is deprecated'); - } -} - -{ package My::Package1; sub foo { Dep::foo() } sub bar { Dep2::bar() } - sub baz { Dep3::baz() } } { @@ -193,33 +181,42 @@ use Test::Requires { sub foo { My::Package1::foo() } sub bar { My::Package1::bar() } - sub baz { My::Package1::baz() } } { package My::Baz; - ::warning_like{ My::Package1::bar() } - qr/^bar is deprecated at t.basic\.t line \d+/, - 'deprecation warning for call to My::Package1::bar()'; + ::stderr_like{ My::Package2::foo() } + qr/^foo is deprecated at t.basic\.t line \d+\s+My::Baz/, + 'deprecation warning for call to My::Package2::foo() and mentions My::Baz but not My::Package[12]'; - ::warning_like{ My::Package2::foo() } - qr/^foo is deprecated at t.basic\.t line \d+/, - 'deprecation warning for call to My::Package2::foo()'; + ::stderr_is{ My::Package2::foo() } + q{}, + 'no deprecation warning for second call to My::Package2::foo()'; - ::warning_like{ My::Package1::baz() } - qr/^baz is deprecated at t.basic\.t line \d+/, - 'deprecation warning for call to My::Package2::foo()'; + ::stderr_is{ My::Package1::foo() } + q{}, + 'no deprecation warning for call to My::Package1::foo()'; + + ::stderr_like{ My::Package2::bar() } + qr/^bar is deprecated at t.basic\.t line \d+\s+My::Baz/, + 'deprecation warning for call to My::Package2::foo() and mentions My::Baz but not My::Package[12]'; + + ::stderr_is{ My::Package2::bar() } + q{}, + 'no deprecation warning for second call to My::Package2::bar()'; } { - package My::Baz; + package My::Quux; - Dep->import( -api_version => '0.8' ); + ::stderr_like{ My::Package1::foo() } + qr/^foo is deprecated at t.basic\.t line \d+\s+My::Quux/, + 'deprecation warning for call to My::Package1::foo() and mentions My::Quux but not My::Package[12]'; - ::warning_is{ My::Package2::foo() } + ::stderr_is{ My::Package1::foo() } q{}, - 'no warning when calling My::Package2::foo()'; + 'no deprecation warning for second call to My::Package1::foo()'; } done_testing();