my
$schema
= DBICTest->init_schema(
no_populate
=> 1 );
my
$t11
=
$schema
->resultset(
'Track'
)->find_or_create({
trackid
=> 1,
title
=>
'Track one cd one'
,
cd
=> {
year
=> 1,
title
=>
'CD one'
,
very_long_artist_relationship
=> {
name
=>
'Artist one'
,
}
}
});
my
$t12
=
$schema
->resultset(
'Track'
)->find_or_create({
trackid
=> 2,
title
=>
'Track two cd one'
,
cd
=> {
title
=>
'CD one'
,
very_long_artist_relationship
=> {
name
=>
'Artist one'
,
}
}
});
$schema
->resultset(
'Artist'
)->create({
name
=>
'Artist two'
});
my
$t2
=
$schema
->resultset(
'Track'
)->find_or_create({
trackid
=> 3,
title
=>
'Track one cd one'
,
cd
=> {
year
=> 1,
title
=>
'CD one'
,
very_long_artist_relationship
=> {
name
=>
'Artist two'
,
}
}
});
is_deeply(
$schema
->resultset(
'Artist'
)->search({}, {
prefetch
=> {
cds
=>
'tracks'
},
order_by
=>
'tracks.title'
,
})->all_hri,
[
{
artistid
=> 1,
charfield
=>
undef
,
name
=>
"Artist one"
,
rank
=> 13,
cds
=> [
{
artist
=> 1,
cdid
=> 1,
genreid
=>
undef
,
single_track
=>
undef
,
title
=>
"CD one"
,
year
=> 1,
tracks
=> [
{
cd
=> 1,
last_updated_at
=>
undef
,
last_updated_on
=>
undef
,
position
=> 1,
title
=>
"Track one cd one"
,
trackid
=> 1 },
{
cd
=> 1,
last_updated_at
=>
undef
,
last_updated_on
=>
undef
,
position
=> 2,
title
=>
"Track two cd one"
,
trackid
=> 2 },
]},
]},
{
artistid
=> 2,
charfield
=>
undef
,
name
=>
"Artist two"
,
rank
=> 13,
cds
=> [
{
artist
=> 2,
cdid
=> 2,
genreid
=>
undef
,
single_track
=>
undef
,
title
=>
"CD one"
,
year
=> 1,
tracks
=> [
{
cd
=> 2,
last_updated_at
=>
undef
,
last_updated_on
=>
undef
,
position
=> 1,
title
=>
"Track one cd one"
,
trackid
=> 3 },
]},
]},
],
'Expected state of database after several find_or_create rounds'
);
done_testing;