1use strict;
2use warnings;
3use Test::More;
4use Test::Warn;
5use Test::MockObject;
6use Dancer2::Plugin::Auth::Extensible::Provider::DBIC;
7
8my $mock = Test::MockObject->new;
9$mock->set_true('app');
10
11# instantiate with _source
12{
13    my $plugin;
14    warnings_like(
15        sub {
16            $plugin = Dancer2::Plugin::Auth::Extensible::Provider::DBIC->new(
17                plugin            => $mock,
18                users_source      => 'users',
19                roles_source      => 'roles',
20                user_roles_source => 'user_roles',
21            );
22        },
23        [
24            qr/\Qconfig setting "users_source" is deprecated. Use "users_resultset" instead/,
25            qr/\Qconfig setting "roles_source" is deprecated. Use "roles_resultset" instead/,
26            qr/\Qconfig setting "user_roles_source" is deprecated. Use "user_roles_resultset" instead/,
27        ],
28        "_source is deprecated"
29    );
30    isa_ok $plugin, 'Dancer2::Plugin::Auth::Extensible::Provider::DBIC',
31        'object created with _source';
32    is $plugin->users_resultset,      'Users',     "... and users_resultset got set";
33    is $plugin->roles_resultset,      'Roles',     "... and roles_resultset got set";
34    is $plugin->user_roles_resultset, 'UserRoles', "... and user_roles_resultset got set";
35}
36
37# instantiate with _table
38{
39    my $plugin;
40    warnings_like(
41        sub {
42            $plugin = Dancer2::Plugin::Auth::Extensible::Provider::DBIC->new(
43                plugin           => $mock,
44                users_table      => 'users',
45                roles_table      => 'roles',
46                user_roles_table => 'user_roles',
47            );
48        },
49        [
50            qr/\Qconfig setting "users_table" is deprecated. Use "users_resultset" instead/,
51            qr/\Qconfig setting "roles_table" is deprecated. Use "roles_resultset" instead/,
52            qr/\Qconfig setting "user_roles_table" is deprecated. Use "user_roles_resultset" instead/,
53        ],
54        "_source is deprecated"
55    );
56    isa_ok $plugin, 'Dancer2::Plugin::Auth::Extensible::Provider::DBIC',
57        'object created with _table';
58    is $plugin->users_resultset,      'Users',     "... and users_resultset got set";
59    is $plugin->roles_resultset,      'Roles',     "... and roles_resultset got set";
60    is $plugin->user_roles_resultset, 'UserRoles', "... and user_roles_resultset got set";
61}
62
63done_testing;
64