use Test::More;
use Test::Exception;
+use Test::Warn;
use lib qw(t/lib);
use DBICTest;
-plan tests => 91;
-
my $schema = DBICTest->init_schema();
lives_ok ( sub {
# /
# Producer
lives_ok ( sub {
- my $artist = $schema->resultset('Artist')->first;
+ my $artist = $schema->resultset('Artist')->find(1);
my $cd = $schema->resultset('CD')->create ({
artist => $artist,
title => 'Music to code by at night',
is ($cd->title, 'Music to code by at night', 'Correct CD title');
is ($cd->tracks->count, 2, 'Two tracks on main CD');
- my ($t1, $t2) = $cd->tracks->all;
+ my ($t1, $t2) = sort { $a->id <=> $b->id } $cd->tracks->all;
is ($t1->title, 'Off by one again', 'Correct 1st track name');
is ($t1->cd_single, undef, 'No single for 1st track');
is ($t2->title, 'The dereferencer', 'Correct 2nd track name');
$kurt_cobain->{cds} = [ $in_utero ];
+ warnings_exist {
+ $schema->resultset('Artist')->populate([ $kurt_cobain ]);
+ } qr/\QFast-path populate() with supplied related objects is not possible/;
+
- $schema->resultset('Artist')->populate([ $kurt_cobain ]); # %)
my $artist = $schema->resultset('Artist')->find({name => 'Kurt Cobain'});
is($artist->name, 'Kurt Cobain', 'Artist insertion ok');
#$t->cd($t->new_related('cd', { artist => undef } ) );
#$t->{_rel_in_storage} = 0;
$t->insert;
-}, qr/cd.artist may not be NULL/, "Exception propogated properly");
+}, qr/DBI Exception.+(?x:
+ \QNOT NULL constraint failed: cd.artist\E
+ |
+ \Qcd.artist may not be NULL\E
+)/s, "Exception propogated properly");
lives_ok ( sub {
$schema->resultset('CD')->create ({
is ($m2m_cd->first->producers->first->name, 'Cowboy Neal', 'Correct producer row created');
}, 'Test multi create over many_to_many');
-1;
+done_testing;