Remove extraneous sources for aliasing test; same effect can be achieved using search...
[dbsrgits/DBIx-Class.git] / t / 79aliasing.t
1 use strict;
2 use warnings;  
3
4 use Test::More;
5 use lib qw(t/lib);
6 use DBICTest;
7
8 my $schema = DBICTest->init_schema();
9
10 plan tests => 8;
11
12 my $artist = $schema->resultset('Artist')->find(1);
13
14 # Check that you can leave off the alias
15 {
16   my $existing_cd = $artist->search_related('cds', undef, { prefetch => 'tracks' })->find_or_create({
17     title => 'Ted',
18     year  => 2006,
19   });
20   ok(! $existing_cd->is_changed, 'find_or_create on prefetched has_many with same column names: row is clean');
21   is($existing_cd->title, 'Ted', 'find_or_create on prefetched has_many with same column names: name matches existing entry');
22
23   my $new_cd = $artist->search_related('cds', undef, { prefetch => 'tracks' })->find_or_create({
24     title => 'Something Else',
25     year  => 2006,
26   });
27   ok(! $new_cd->is_changed, 'find_or_create on prefetched has_many with same column names: row is clean');
28   is($new_cd->title, 'Something Else', 'find_or_create on prefetched has_many with same column names: title matches');
29 }
30
31 # Check that you can specify the alias
32 {
33   my $existing_cd = $artist->search_related('cds', undef, { prefetch => 'tracks' })->find_or_create({
34     'me.title' => 'Something Else',
35     'me.year'  => 2006,
36   });
37   ok(! $existing_cd->is_changed, 'find_or_create on prefetched has_many with same column names: row is clean');
38   is($existing_cd->title, 'Something Else', 'find_or_create on prefetched has_many with same column names: can be disambiguated with "me." for existing entry');
39
40   my $new_cd = $artist->search_related('cds', undef, { prefetch => 'tracks' })->find_or_create({
41     'me.title' => 'Some New Guy',
42     'me.year'  => 2006,
43   });
44   ok(! $new_cd->is_changed, 'find_or_create on prefetched has_many with same column names: row is clean');
45   is($new_cd->title, 'Some New Guy', 'find_or_create on prefetched has_many with same column names: can be disambiguated with "me." for new entry');
46 }