1#!perl
2
3use strict;
4use warnings;
5
6use lib 't/lib';
7use Test::More;
8
9use TestSchema;
10my $schema = TestSchema->deploy_or_connect();
11$schema->prepopulate;
12
13$schema->resultset('Foo_Bar')->delete;
14$schema->resultset('Foo_Bar')->populate([
15   [qw(foo_id bar_id)],
16   [1, 2],
17   [2, 1],
18   [4, 5],
19]);
20
21subtest 'single pk column' => sub {
22   for ($schema->resultset('Bar')->all) {
23      subtest 'Bar.id: ' . $_->id => sub {
24         is ($_->self_rs->count, 1, 'single row in self_rs');
25         is ($_->self_rs->single->id, $_->id, 'id matches');
26      };
27   }
28};
29
30subtest 'multi pk' => sub {
31   for ($schema->resultset('Foo_Bar')->all) {
32      subtest 'Foo_Bar: ' . $_->foo_id . ' ' . $_->bar_id => sub {
33         is ($_->self_rs->count, 1, 'single row in self_rs');
34         is ($_->self_rs->single->foo_id, $_->foo_id, 'foo_id matches');
35         is ($_->self_rs->single->bar_id, $_->bar_id, 'bar_id matches');
36      };
37   }
38};
39
40done_testing;
41
42