From 17e01339a2f56d3c240d4f2b05215cc3034b12db Mon Sep 17 00:00:00 2001 From: Bart Jorgensen Date: Wed, 8 Aug 2012 21:23:55 +1200 Subject: [PATCH] Added and tested a mock-db tested a couple of features http://bugs.koha-community.org/show_bug.cgi?id=5327 Signed-off-by: Katrin Fischer All tests pass! Signed-off-by: Jonathan Druart --- t/Members_AttributeTypes.t | 63 ++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 58 insertions(+), 5 deletions(-) diff --git a/t/Members_AttributeTypes.t b/t/Members_AttributeTypes.t index 9dfc6c3..5aba165 100755 --- a/t/Members_AttributeTypes.t +++ b/t/Members_AttributeTypes.t @@ -1,14 +1,67 @@ #!/usr/bin/perl # -# This Koha test module is a stub! -# Add more tests here!!! +# Tests 'fetch', 'fake db data', and 'checks for existant attributes' use strict; use warnings; - -use Test::More tests => 1; +use Test::MockModule; +use Test::More tests => 9; BEGIN { - use_ok('C4::Members::AttributeTypes'); + use_ok('C4::Members::AttributeTypes'); } +my $module = new Test::MockModule('C4::Context'); +$module->mock( + '_new_dbh', + sub { + my $dbh = DBI->connect( 'DBI:Mock:', '', '' ) + || die "Cannot create handle: $DBI::errstr\n"; + return $dbh; + } +); +my $members_attributetypes = [ + [ + 'code', 'description', + 'repeatable', 'unique_id', + 'opac_display', 'password_allowed', + 'staff_searchable', 'authorised_value_category', + 'display_checkout', 'catagory_code', + 'class' + ], + [ 'one', 'ISBN', '1', '1', '1', '1', '1', 'red', '1', 'orange', 'green' ], + [ 'two', 'ISSN', '0', '0', '0', '0', '0', 'blue', '0', 'yellow', 'silver' ] +]; + +my $dbh = C4::Context->dbh(); + +$dbh->{mock_add_resultset} = $members_attributetypes; + +my @members_attributetypes = C4::Members::AttributeTypes::GetAttributeTypes(); + +is( $members_attributetypes[0]->{'code'}, 'one', 'First code value is one' ); + +is( $members_attributetypes[1]->{'code'}, 'two', 'Second code value is two' ); + +is( $members_attributetypes[0]->{'class'}, + 'green', 'First class value is green' ); + +is( $members_attributetypes[1]->{'class'}, + 'silver', 'Second class value is silver' ); + +$dbh->{mock_add_resultset} = $members_attributetypes; + +ok( C4::Members::AttributeTypes::AttributeTypeExists('one'), + 'checking an attribute type exists' ); + +ok( + !C4::Members::AttributeTypes::AttributeTypeExists('three'), + "checking a attribute that isn't in the code doesn't exist" +); + +$dbh->{mock_add_resultset} = $members_attributetypes; + +ok( C4::Members::AttributeTypes->fetch('ISBN'), "testing fetch feature" ); + +ok( !C4::Members::AttributeTypes->fetch('FAKE'), + "testing fetch feature doesn't work if value not in database" ); -- 1.7.7.3