8 my $schema = DBICTest->init_schema();
12 my $artist = $schema->resultset('Artist')->find(1);
14 # Check that you can leave off the alias
16 my $existing_cd = $artist->search_related('cds', undef, { prefetch => 'tracks' })->find_or_create({
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');
23 my $new_cd = $artist->search_related('cds', undef, { prefetch => 'tracks' })->find_or_create({
24 title => 'Something Else',
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');
31 # Check that you can specify the alias
33 my $existing_cd = $artist->search_related('cds', undef, { prefetch => 'tracks' })->find_or_create({
34 'me.title' => 'Something Else',
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');
40 my $new_cd = $artist->search_related('cds', undef, { prefetch => 'tracks' })->find_or_create({
41 'me.title' => 'Some New Guy',
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');