X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fsearch%2Freentrancy.t;fp=t%2Fsearch%2Freentrancy.t;h=879060322c23d2b5b20cdb2248d7bdb635a9a9ef;hb=1887cd9f0db6e10e4659fa770b064e2bf25bc0b3;hp=0000000000000000000000000000000000000000;hpb=f390d66dabd6359ebe778a1e993956de122e1b85;p=dbsrgits%2FDBIx-Class.git diff --git a/t/search/reentrancy.t b/t/search/reentrancy.t new file mode 100644 index 0000000..8790603 --- /dev/null +++ b/t/search/reentrancy.t @@ -0,0 +1,50 @@ +use strict; +use warnings; + +use Test::More; + +use lib qw(t/lib); +use DBICTest; + +my $schema = DBICTest->init_schema(); + +my $track_titles = { map { @$_ } + $schema->resultset('Track') + ->search({}, { columns => [qw(trackid title)] }) + ->cursor + ->all +}; + +my $rs = $schema->resultset('Track'); + +for my $pass (1,2,3) { + for my $meth (qw(search single find)) { + + my $id = (keys %$track_titles)[0]; + my $tit = delete $track_titles->{$id}; + + my ($o) = $rs->$meth({ trackid => $id }); + + is( + $rs->count({ trackid => $id }), + 1, + "Count works (pass $pass)", + ); + + is( + $o->title, + $tit, + "Correct object retrieved via $meth() (pass $pass)" + ); + + $o->delete; + + is( + $rs->count_rs({ trackid => $id })->next, + 0, + "Count_rs works (pass $pass)", + ); + } +} + +done_testing;