From: Peter Rabbitson Date: Tue, 4 Aug 2009 13:48:33 +0000 (+0000) Subject: Separate the diamond MC test X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=195ce0392659da3b78e4fcbf799f14c10e420dd4;p=dbsrgits%2FDBIx-Class-Historic.git Separate the diamond MC test Use the new Test::More's no_plan ability --- diff --git a/Makefile.PL b/Makefile.PL index d21951b..8596292 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -13,7 +13,7 @@ all_from 'lib/DBIx/Class.pm'; test_requires 'Test::Builder' => 0.33; test_requires 'Test::Deep' => 0; test_requires 'Test::Exception' => 0; -test_requires 'Test::More' => 0.82; +test_requires 'Test::More' => 0.92; test_requires 'Test::Warn' => 0.11; # Core diff --git a/t/multi_create/diamond.t b/t/multi_create/diamond.t new file mode 100644 index 0000000..499f7a1 --- /dev/null +++ b/t/multi_create/diamond.t @@ -0,0 +1,52 @@ +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} }; + +my $schema = DBICTest->init_schema(); + +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'); + +done_testing; diff --git a/t/multi_create/multilev_single_PKeqFK.t b/t/multi_create/multilev_single_PKeqFK.t index a730b2b..255f6cf 100644 --- a/t/multi_create/multilev_single_PKeqFK.t +++ b/t/multi_create/multilev_single_PKeqFK.t @@ -8,8 +8,6 @@ use DBICTest; sub mc_diag { diag (@_) if $ENV{DBIC_MULTICREATE_DEBUG} }; -plan tests => 30; - my $schema = DBICTest->init_schema(); mc_diag (<<'DG'); @@ -102,43 +100,4 @@ for my $type (qw/has_one might_have/) { }, "multilevel $type with a PK == FK in the $type/has_many table ok"); } - -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'); - +done_testing; \ No newline at end of file