+++ /dev/null
-use strict;
-use warnings;
-
-use Test::More;
-use Test::Exception;
-use lib qw(t/lib);
-use DBICTest;
-
-sub mc_diag { diag (@_) if $ENV{DBIC_MULTICREATE_DEBUG} };
-
-plan tests => 13;
-
-my $schema = DBICTest->init_schema();
-
-mc_diag (<<'DG');
-* Test a multilevel might-have with a PK == FK in the might_have/has_many table
-
-CD -> might have -> Artwork
- \
- \-> has_many \
- --> Artwork_to_Artist
- /-> has_many /
- /
- Artist
-DG
-
-lives_ok (sub {
- my $cd = $schema->resultset('CD')->create ({
- artist => { name => 'the cincinnati kid' },
- title => 'Music to code by until the cows come home',
- year => 2008,
- artwork => {
- artwork_to_artist => [
- { artist => { name => 'cowboy joe' } },
- { artist => { name => 'billy the kid' } },
- ],
- },
- });
-
- isa_ok ($cd, 'DBICTest::CD', 'Main CD object created');
- is ($cd->title, 'Music to code by until the cows come home', 'Correct CD title');
- is ($cd->artist->name, 'the cincinnati kid', 'Correct artist created for CD');
-
- my $art_obj = $cd->artwork;
- ok ($art_obj->has_column_loaded ('cd_id'), 'PK/FK present on artwork object');
- is ($art_obj->artists->count, 2, 'Correct artwork creator count via the new object');
- is_deeply (
- [ sort $art_obj->artists->get_column ('name')->all ],
- [ 'billy the kid', 'cowboy joe' ],
- 'Artists named correctly when queried via object',
- );
-
- my $artwork = $schema->resultset('Artwork')->search (
- { 'cd.title' => 'Music to code by until the cows come home' },
- { join => 'cd' },
- )->single;
- is ($artwork->artists->count, 2, 'Correct artwork creator count via a new search');
- is_deeply (
- [ sort $artwork->artists->get_column ('name')->all ],
- [ 'billy the kid', 'cowboy joe' ],
- 'Artists named correctly queried via a new search',
- );
-}, 'multilevel might-have with a PK == FK in the might_have/has_many table ok');
-
-
-mc_diag (<<'DG');
-* Try the same as above in a different direction
-
-Artist -> has_many -> Artwork_to_Artist -> belongs_to
- /
- belongs_to <- CD <- belongs_to <- Artwork <-/
- \
- \-> Artist2
-
-DG
-
-lives_ok (sub {
- $schema->resultset ('Artist')->create ({
- name => 'The wooled wolf',
- artwork_to_artist => [{
- artwork => {
- cd => {
- title => 'Wool explosive',
- year => 1999,
- artist => { name => 'The black exploding sheep' },
- }
- }
- }],
- });
-
- my $art2 = $schema->resultset ('Artist')->find ({ name => 'The black exploding sheep' });
- ok ($art2, 'Second artist exists');
-
- my $cd = $art2->cds->single;
- is ($cd->title, 'Wool explosive', 'correctly created CD');
-
- is_deeply (
- [ $cd->artwork->artists->get_column ('name')->all ],
- [ 'The wooled wolf' ],
- 'Artist correctly attached to artwork',
- );
-
-}, 'Diamond chain creation ok');
-
-1;
sub mc_diag { diag (@_) if $ENV{DBIC_MULTICREATE_DEBUG} };
-plan tests => 26;
+plan tests => 30;
my $schema = DBICTest->init_schema();
}, "multilevel $type with a PK == FK in the $type/has_many table ok");
}
-1;
+
+mc_diag (<<'DG');
+* Try a diamond multicreate
+
+Artist -> has_many -> Artwork_to_Artist -> belongs_to
+ /
+ belongs_to <- CD <- belongs_to <- Artwork <-/
+ \
+ \-> Artist2
+
+DG
+
+lives_ok (sub {
+ $schema->resultset ('Artist')->create ({
+ name => 'The wooled wolf',
+ artwork_to_artist => [{
+ artwork => {
+ cd => {
+ title => 'Wool explosive',
+ year => 1999,
+ artist => { name => 'The black exploding sheep' },
+ }
+ }
+ }],
+ });
+
+ my $art2 = $schema->resultset ('Artist')->find ({ name => 'The black exploding sheep' });
+ ok ($art2, 'Second artist exists');
+
+ my $cd = $art2->cds->single;
+ is ($cd->title, 'Wool explosive', 'correctly created CD');
+
+ is_deeply (
+ [ $cd->artwork->artists->get_column ('name')->all ],
+ [ 'The wooled wolf' ],
+ 'Artist correctly attached to artwork',
+ );
+
+}, 'Diamond chain creation ok');
+