X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F60core.t;h=8ab6129b2c847cbc78564b49112e158fed219bd0;hb=63bb9738dd8fdca42ad88d99a2a3861ad2b00eed;hp=6094c39c3cd28143cea24f7c8397e8ada6f9cba3;hpb=a22688ab3069992b58dbd64d2b62a76744873a00;p=dbsrgits%2FDBIx-Class.git diff --git a/t/60core.t b/t/60core.t index 6094c39..8ab6129 100644 --- a/t/60core.t +++ b/t/60core.t @@ -3,6 +3,7 @@ use warnings; use Test::More; use Test::Exception; +use Test::Warn; use lib qw(t/lib); use DBICTest; use DBIC::SqlMakerTest; @@ -35,10 +36,10 @@ ok($art->update, 'Update run'); my %not_dirty = $art->get_dirty_columns(); is(scalar(keys(%not_dirty)), 0, 'Nothing is dirty'); -eval { +throws_ok ( sub { my $ret = $art->make_column_dirty('name2'); -}; -ok(defined($@), 'Failed to make non-existent column dirty'); +}, qr/No such column 'name2'/, 'Failed to make non-existent column dirty'); + $art->make_column_dirty('name'); my %fake_dirty = $art->get_dirty_columns(); is(scalar(keys(%fake_dirty)), 1, '1 fake dirty column'); @@ -64,7 +65,7 @@ lives_ok (sub { $art->delete }, 'Cascading delete on Ordered has_many works' ); is(@art, 2, 'And then there were two'); -ok(!$art->in_storage, "It knows it's dead"); +is($art->in_storage, 0, "It knows it's dead"); dies_ok ( sub { $art->delete }, "Can't delete twice"); @@ -143,7 +144,7 @@ is($schema->resultset("Artist")->count, 4, 'count ok'); }); is($new_obj->name, 'find_or_new', 'find_or_new: instantiated a new artist'); - ok(! $new_obj->in_storage, 'new artist is not in storage'); + is($new_obj->in_storage, 0, 'new artist is not in storage'); } my $cd = $schema->resultset("CD")->find(1); @@ -221,9 +222,9 @@ SKIP: { isa_ok($tdata{'last_updated_on'}, 'DateTime', 'inflated accessored column'); } -eval { $schema->class("Track")->load_components('DoesNotExist'); }; - -ok $@, $@; +throws_ok (sub { + $schema->class("Track")->load_components('DoesNotExist'); +}, qr!Can't locate DBIx/Class/DoesNotExist.pm!, 'exception on nonexisting component'); is($schema->class("Artist")->field_name_for->{name}, 'artist name', 'mk_classdata usage ok'); @@ -238,6 +239,13 @@ my $collapsed_or_rs = $or_rs->search ({}, { distinct => 1 }); # induce collapse is ($collapsed_or_rs->all, 4, 'Collapsed joined search with OR returned correct number of rows'); is ($collapsed_or_rs->count, 4, 'Collapsed search count with OR ok'); +# make sure sure distinct on a grouped rs is warned about +my $cd_rs = $schema->resultset ('CD') + ->search ({}, { distinct => 1, group_by => 'title' }); +warnings_exist (sub { + $cd_rs->next; +}, qr/Useless use of distinct/, 'UUoD warning'); + { my $tcount = $schema->resultset('Track')->search( {},