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