From: John Napiorkowski Date: Tue, 8 May 2007 20:43:07 +0000 (+0000) Subject: Added a test for create related and a second test to highlite a maybe issue X-Git-Tag: v0.08010~150^2~51^2~15 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=3d8ee6abf96e514d1e555fb9a9b5a465c494f718;p=dbsrgits%2FDBIx-Class.git Added a test for create related and a second test to highlite a maybe issue --- diff --git a/t/96multi_create.t b/t/96multi_create.t index 9edc1c6..24b5d0f 100644 --- a/t/96multi_create.t +++ b/t/96multi_create.t @@ -7,7 +7,7 @@ use DBICTest; my $schema = DBICTest->init_schema(); -plan tests => 6; +plan tests => 11; my $cd2 = $schema->resultset('CD')->create({ artist => { name => 'Fred Bloggs' }, @@ -41,6 +41,7 @@ my $newartist = $schema->resultset('Artist')->find_or_create({ name => 'Fred 2'} is($newartist->name, 'Fred 2', 'Retrieved the artist'); + my $newartist2 = $schema->resultset('Artist')->find_or_create({ name => 'Fred 3', cds => [ { title => 'Noah Act', @@ -51,3 +52,69 @@ my $newartist2 = $schema->resultset('Artist')->find_or_create({ name => 'Fred 3' }); is($newartist2->name, 'Fred 3', 'Created new artist with cds via find_or_create'); + + +CREATE_RELATED1 :{ + + my $artist = $schema->resultset('Artist')->first; + + my $cd_result = $artist->create_related('cds', { + + title => 'TestOneCD1', + year => 2007, + tracks => [ + + { position=>111, + title => 'TrackOne', + }, + { position=>112, + title => 'TrackTwo', + } + ], + + }); + + ok( $cd_result && ref $cd_result eq 'DBICTest::CD', "Got Good CD Class"); + ok( $cd_result->title eq "TestOneCD1", "Got Expected Title"); + + my $tracks = $cd_result->tracks; + + ok( ref $tracks eq "DBIx::Class::ResultSet", "Got Expected Tracks ResultSet"); + + foreach my $track ($tracks->all) + { + ok( $track && ref $track eq 'DBICTest::Track', 'Got Expected Track Class'); + } +} + +CREATE_RELATED2 :{ + + + my $cd_result = $schema->resultset('Artist')->first->create_related('cds', { + + title => 'TestOneCD1', + year => 2007, + tracks => [ + + { position=>111, + title => 'TrackOne', + }, + { position=>112, + title => 'TrackTwo', + } + ], + + }); + + ok( $cd_result && ref $cd_result eq 'DBICTest::CD', "Got Good CD Class"); + ok( $cd_result->title eq "TestOneCD1", "Got Expected Title"); + + my $tracks = $cd_result->tracks; + + ok( ref $tracks eq "DBIx::Class::ResultSet", "Got Expected Tracks ResultSet"); + + foreach my $track ($tracks->all) + { + ok( $track && ref $track eq 'DBICTest::Track', 'Got Expected Track Class'); + } +}