use Test::More;
use Test::Exception;
+use Test::Warn;
use lib qw(t/lib);
'Exception-arrayref contents preserved',
);
+for my $ap (qw(
+ DBICTest::AntiPattern::TrueZeroLen
+ DBICTest::AntiPattern::NullObject
+)) {
+ eval "require $ap";
+
+ warnings_like {
+ eval {
+ $schema->txn_do (sub { die $ap->new });
+ };
+
+ isa_ok $@, $ap;
+ } qr/\QObjects of external exception class '$ap' stringify to '' (the empty string)/,
+ 'Proper warning on encountered antipattern';
+
+ warnings_are {
+ $@ = $ap->new;
+ $schema->txn_do (sub { 1 });
+
+ $@ = $ap->new;
+ $schema->txn_scope_guard->commit;
+ } [], 'No spurious PSA warnings on pre-existing antipatterns in $@';
+
+}
+
done_testing;