X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F60core.t;h=c5959d07f1c7386ab4e6789a7ee7150a54514bb4;hb=a918d9014c5fc4684efb8b6c2abb84cf60d9c826;hp=ad34e54416f7ffb3424ca089011e4aee6ef2aa44;hpb=d6915f449e2d68ac184d6bc616043fd605913757;p=dbsrgits%2FDBIx-Class.git diff --git a/t/60core.t b/t/60core.t index ad34e54..c5959d0 100644 --- a/t/60core.t +++ b/t/60core.t @@ -5,9 +5,9 @@ use Test::More; use lib qw(t/lib); use DBICTest; -my $schema = DBICTest::init_schema(); +my $schema = DBICTest->init_schema(); -plan tests => 58; +plan tests => 63; # figure out if we've got a version of sqlite that is older than 3.2.6, in # which case COUNT(DISTINCT()) doesn't work @@ -38,6 +38,14 @@ is($art->get_column("name"), 'We Are In Rehab', 'And via get_column'); ok($art->update, 'Update run'); +my $record_jp = $schema->resultset("Artist")->search(undef, { join => 'cds' })->search(undef, { prefetch => 'cds' })->next; + +ok($record_jp, "prefetch on same rel okay"); + +my $record_fn = $schema->resultset("Artist")->search(undef, { join => 'cds' })->search({'cds.cdid' => '1'}, {join => 'artist_undirected_maps'})->next; + +ok($record_fn, "funny join is okay"); + @art = $schema->resultset("Artist")->search({ name => 'We Are In Rehab' }); cmp_ok(@art, '==', 1, "Changed artist returned by search"); @@ -94,9 +102,13 @@ is($new_again->ID, 'DBICTest::Artist|artist|artistid=4', 'unique object id gener # Test backwards compatibility { + my $warnings = ''; + local $SIG{__WARN__} = sub { $warnings .= $_[0] }; + my $artist_by_hash = $schema->resultset('Artist')->find(artistid => 4); is($artist_by_hash->name, 'Man With A Spoon', 'Retrieved correctly'); is($artist_by_hash->ID, 'DBICTest::Artist|artist|artistid=4', 'unique object id generated correctly'); + like($warnings, qr/deprecated/, 'warned about deprecated find usage'); } is($schema->resultset("Artist")->count, 4, 'count ok'); @@ -152,7 +164,7 @@ is($cd->get_column('name'), 'Caterwauler McCrae', 'Additional column returned'); $new = $schema->resultset("Track")->new( { trackid => 100, cd => 1, - position => 1, + position => 4, title => 'Insert or Update', } ); $new->update_or_insert; @@ -241,6 +253,9 @@ ok($schema->storage(), 'Storage available'); my @artsn = $schema->resultset('SourceNameArtists')->search({}, { order_by => 'name DESC' }); cmp_ok(@artsn, '==', 4, "Four artists returned"); + + # make sure subclasses that don't set source_name are ok + ok($schema->source('ArtistSubclass', 'ArtistSubclass exists')); } my $newbook = $schema->resultset( 'Bookmark' )->find(1); @@ -274,5 +289,6 @@ ok(!$@, "stringify to false value doesn't cause error"); is_deeply([$schema->source('CD')->columns], [qw/cdid artist title year/]); $schema->source('CD')->remove_columns('year'); is_deeply([$schema->source('CD')->columns], [qw/cdid artist title/]); + ok(! exists $schema->source('CD')->_columns->{'year'}, 'year still exists in _columns'); }