Bug 13457 - Followup for CPL and S codes
[koha.git] / t / db_dependent / Csv.t
index 17cd8bb..be42e8a 100755 (executable)
@@ -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'
+);