From 567e86d57578ed5209841b58a79092603ad2e828 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Fri, 11 Oct 2013 03:23:47 +0000 Subject: [PATCH] Bug 10853: (follow-up) expand unit tests for C4::Csv To test: [1] Verify that prove -v t/db_dependent/Csv.t passes. Signed-off-by: Galen Charlton --- t/db_dependent/Csv.t | 65 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 57 insertions(+), 8 deletions(-) diff --git a/t/db_dependent/Csv.t b/t/db_dependent/Csv.t index 17cd8bbb03..be42e8a916 100755 --- a/t/db_dependent/Csv.t +++ b/t/db_dependent/Csv.t @@ -1,18 +1,67 @@ #!/usr/bin/perl -# -# This Koha test module is a stub! -# Add more tests here!!! use strict; use warnings; -use Test::More tests => 4; +use Test::More tests => 10; +use Test::Deep; +use C4::Context; BEGIN { - use_ok('C4::Csv'); + use_ok('C4::Csv'); } -ok(C4::Csv::GetCsvProfiles(), 'test getting csv profiles'); -is(C4::Csv::GetCsvProfile(),undef, 'test getting csv profiles'); +my $dbh = C4::Context->dbh; +$dbh->{AutoCommit} = 0; +$dbh->{RaiseError} = 1; -ok(C4::Csv::GetCsvProfilesLoop(), 'test getting profile loop'); +$dbh->do('DELETE FROM export_format'); + +my $sth = $dbh->prepare(q{ + INSERT INTO export_format (profile, description, content, type) + VALUES (?, ?, ?, ?) +}); +$sth->execute('MARC', 'MARC profile', '245$a', 'marc'); +$sth->execute('SQL', 'SQL profile', 'borrowers.surname', 'sql'); + +my $all_profiles = C4::Csv::GetCsvProfiles(); +is(@$all_profiles, 2, 'test getting all CSV profiles'); + +my $sql_profiles = C4::Csv::GetCsvProfiles('sql'); +is(@$sql_profiles, 1, 'test getting SQL CSV profiles'); +is($sql_profiles->[0]->{profile}, 'SQL', '... and got the right one'); +my $marc_profiles = C4::Csv::GetCsvProfiles('marc'); +is(@$marc_profiles, 1, 'test getting MARC CSV profiles'); +is($marc_profiles->[0]->{profile}, 'MARC', '... and got the right one'); + +my $id = C4::Csv::GetCsvProfileId('MARC'); +my $profile = C4::Csv::GetCsvProfile($id); +is($profile->{profile}, 'MARC', 'retrieved profile by ID'); + +is(C4::Csv::GetCsvProfile(), undef, 'test getting CSV profile but not supplying ID'); + +cmp_deeply( + C4::Csv::GetCsvProfilesLoop(), + [ + { + export_format_id => ignore(), + profile => 'MARC', + }, + { + export_format_id => ignore(), + profile => 'SQL', + }, + ], + 'test getting profile loop' +); + +cmp_deeply( + C4::Csv::GetCsvProfilesLoop('marc'), + [ + { + export_format_id => ignore(), + profile => 'MARC', + }, + ], + 'test getting profile loop for one type' +); -- 2.39.2