From 2d7ec1575170267d4153378ac7e01804f835d8aa Mon Sep 17 00:00:00 2001 From: af11_sanger Date: Tue, 11 Sep 2012 13:45:36 +0100 Subject: [PATCH] added tests for create/retrieve well accepted override and well recombineering results. fixed bug in retrieve_well_recombineering_results method. --- lib/LIMS2/Model/Plugin/Well.pm | 6 +++--- t/50-model-plugin-well.t | 27 +++++++++++++++++++++++++++ t/data/well.yaml | 12 ++++++++++++ 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/lib/LIMS2/Model/Plugin/Well.pm b/lib/LIMS2/Model/Plugin/Well.pm index 84015b9f59..a41362f56f 100644 --- a/lib/LIMS2/Model/Plugin/Well.pm +++ b/lib/LIMS2/Model/Plugin/Well.pm @@ -208,13 +208,13 @@ sub retrieve_well_recombineering_results { # retrieve_well() will validate the parameters my $well = $self->retrieve_well( $params ); - my $rec_results = $well->well_recombineering_results; + my @rec_results = $well->well_recombineering_results; - if ( @{ $rec_results } == 0) { + if ( @rec_results == 0) { $self->throw( NotFound => { entity_class => 'WellRecombineeringResult', search_params => $params } ); } - return $rec_results; + return \@rec_results; } sub pspec_create_well_dna_status { diff --git a/t/50-model-plugin-well.t b/t/50-model-plugin-well.t index 655ce5a03c..467b90d578 100755 --- a/t/50-model-plugin-well.t +++ b/t/50-model-plugin-well.t @@ -14,6 +14,7 @@ use Try::Tiny; use DateTime; my $well_data= test_data( 'well.yaml' ); + note( "Testing well creation" ); { @@ -44,6 +45,13 @@ note( "Testing well creation" ); is $override->accepted, 0, 'override has correct value'; is $override->well->id, $well->id, 'override belongs to correct well'; + note( "Testing retrieve well accepted override" ); + ok my $well2 = model->retrieve_well($well_data->{well_accepted_override_create}), + 'retrieve created well should succeed'; + ok my $override2 = model->retrieve_well_accepted_override( {well_id => $well2->id} ), + 'retrieve_well_accepted_override should succeed'; + is $override2->well->id, $well2->id, 'retrieved override belongs to correct well'; + note( "Testing update well accepted override" ); ok my $updated_override = model->update_well_accepted_override( $well_data->{well_accepted_override_update} ), 'update_well_accepted_override should succeed'; @@ -123,6 +131,25 @@ note( "Testing well creation" ); is $well->id, $new_dna_status->well_id , '.. and dna_status is for right well'; } +{ + note("Testing well recombineering result create and retrieve"); + + ok my $recomb = model->create_well_recombineering_result( $well_data->{well_recombineering_create} ), + 'create_well_recombineering_result should succeed'; + isa_ok $recomb, 'LIMS2::Model::Schema::Result::WellRecombineeringResult'; + is $recomb->result_type_id, 'pcr_u', 'recombineering result type correct'; + is $recomb->result, 'pass', 'recombineering result correct'; + + ok my $rec_results = model->retrieve_well_recombineering_results( $well_data->{well_recombineering_create} ), + 'can retrieve recombineering results by name'; + isa_ok($rec_results, 'ARRAY'); + isa_ok($rec_results->[0], 'LIMS2::Model::Schema::Result::WellRecombineeringResult'); + + throws_ok{ + model->create_well_recombineering_result( $well_data->{well_recombineering_create_bad} ) + } qr//; +} + { note( "Testing delete_well" ); diff --git a/t/data/well.yaml b/t/data/well.yaml index 26458f013b..1066669f45 100644 --- a/t/data/well.yaml +++ b/t/data/well.yaml @@ -28,3 +28,15 @@ well_accepted_override_update_same: well_name: B01 created_by: test_user@example.org accepted: 1 +well_recombineering_create: + plate_name: PCS00177_A + well_name: B01 + created_by: test_user@example.org + result_type: pcr_u + result: pass +well_recombineering_create_bad: + plate_name: PCS00177_A + well_name: B01 + created_by: test_user@example.org + result_type: foo + result: pass \ No newline at end of file