X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F68inflate_resultclass_hashrefinflator.t;h=35329000de87029d853e684dc5d7940fcc2ff1d9;hb=1cc3ce1eef3deb794a2b2dd4cff166b91145e7c4;hp=214e11a37b74621eb258b76e9383d87cbe904ebf;hpb=e1540ee0230804b9bc519357b703a9d1f09bce7b;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/t/68inflate_resultclass_hashrefinflator.t b/t/68inflate_resultclass_hashrefinflator.t index 214e11a..3532900 100644 --- a/t/68inflate_resultclass_hashrefinflator.t +++ b/t/68inflate_resultclass_hashrefinflator.t @@ -4,7 +4,6 @@ use warnings; use Test::More qw(no_plan); use lib qw(t/lib); use DBICTest; -use DBIx::Class::ResultClass::HashRefInflator; my $schema = DBICTest->init_schema(); @@ -62,6 +61,7 @@ sub check_cols_of { $schema->resultset('CD')->create({ title => 'Silence is golden', artist => 3, year => 2006 }); # order_by to ensure both resultsets have the rows in the same order +# also check result_class-as-an-attribute syntax my $rs_dbic = $schema->resultset('CD')->search(undef, { prefetch => [ qw/ artist tracks / ], @@ -72,9 +72,9 @@ my $rs_hashrefinf = $schema->resultset('CD')->search(undef, { prefetch => [ qw/ artist tracks / ], order_by => [ 'me.cdid', 'tracks.position' ], + result_class => 'DBIx::Class::ResultClass::HashRefInflator', } ); -$rs_hashrefinf->result_class('DBIx::Class::ResultClass::HashRefInflator'); my @dbic = $rs_dbic->all; my @hashrefinf = $rs_hashrefinf->all; @@ -98,8 +98,8 @@ $rs_hashrefinf = $schema->resultset ('Artist')->search ({ 'me.artistid' => 1}, { select => [qw/name tracks.title tracks.cd /], as => [qw/name cds.tracks.title cds.tracks.cd /], order_by => [qw/cds.cdid tracks.trackid/], + result_class => 'DBIx::Class::ResultClass::HashRefInflator', }); -$rs_hashrefinf->result_class('DBIx::Class::ResultClass::HashRefInflator'); @dbic = map { $_->tracks->all } ($rs_dbic->first->cds->all); @hashrefinf = $rs_hashrefinf->all; @@ -115,3 +115,12 @@ for my $index (0 .. $#hashrefinf) { is ($track->get_column ($col), $datahashref->{cds}{tracks}{$col}, "Correct track '$col'"); } } + +# check for same query as above but using extended columns syntax +$rs_hashrefinf = $schema->resultset ('Artist')->search ({ 'me.artistid' => 1}, { + join => { cds => 'tracks' }, + columns => {name => 'name', 'cds.tracks.title' => 'tracks.title', 'cds.tracks.cd' => 'tracks.cd'}, + order_by => [qw/cds.cdid tracks.trackid/], +}); +$rs_hashrefinf->result_class('DBIx::Class::ResultClass::HashRefInflator'); +is_deeply [$rs_hashrefinf->all], \@hashrefinf, 'Check query using extended columns syntax';