use strict;
-use warnings;
+use warnings;
use Test::More;
+use Test::Warn;
use lib qw(t/lib);
use DBICTest;
use Data::Dumper;
}
}
-plan tests => 21;
-
my $schema = DBICTest->init_schema( sqlite_use_file => 1 );
is( ref($schema->storage), 'DBIx::Class::Storage::DBI::SQLite',
'connect_info ([ \%attr_with_coderef ])' => {
args => [ {
dbh_maker => $coderef,
+ dsn => 'blah',
+ user => 'bleh',
on_connect_do => [qw/a b c/],
on_disconnect_do => [qw/d e f/],
} ],
dbi_connect_info => [
$coderef
],
+ warn => qr/Attribute\(s\) 'dsn', 'user' in connect_info were ignored/,
},
};
local $Data::Dumper::Sortkeys = 1;
my $arg_dump = Dumper ($invocations->{$type}{args});
- $storage->connect_info ($invocations->{$type}{args});
+ my $do = sub { };
- is ($arg_dump, Dumper ($invocations->{$type}{args}), "$type didn't modify passed arguments");
+ warnings_exist (
+ sub { $storage->connect_info ($invocations->{$type}{args}) },
+ $invocations->{$type}{warn} || (),
+ 'Warned about ignored attributes',
+ );
+ is ($arg_dump, Dumper ($invocations->{$type}{args}), "$type didn't modify passed arguments");
is_deeply ($storage->_dbi_connect_info, $invocations->{$type}{dbi_connect_info}, "$type produced correct _dbi_connect_info");
ok ( (not $storage->auto_savepoint and not $storage->unsafe), "$type correctly ignored extra hashref");
);
}
+done_testing;
+
1;