#!/usr/bin/perl
#
-# This Koha test module is a stub!
+# This Koha test module is a stub!
# Add more tests here!!!
-use strict;
-use warnings;
+use Modern::Perl;
-use Test::More tests => 1;
+use Test::More tests => 7;
+
+use C4::Context;
BEGIN {
- use_ok('C4::Reports::Guided');
+ use_ok('C4::Reports::Guided');
}
+can_ok(
+ 'C4::Reports::Guided',
+ qw(save_report
+ delete_report)
+);
+
+#Start transaction
+my $dbh = C4::Context->dbh;
+$dbh->{RaiseError} = 1;
+$dbh->{AutoCommit} = 0;
+
+$dbh->do(q|DELETE FROM saved_sql|);
+
+#Start tests
+
+#Test save_report
+my $count = scalar( keys get_saved_reports() );
+is( $count, 0, "There is no report" );
+my $sample_report1 = {
+ borrowernumber => 1,
+ savedsql => 'SQL1',
+ name => 'Name1',
+ area => 'area1',
+ group => 'group1',
+ subgroup => 'subgroup1',
+ type => 'type1',
+ notes => 'note1',
+ cache_expiry => 'null',
+ public => 'null'
+};
+my $sample_report2 = {
+ borrowernumber => 2,
+ savedsql => 'SQL2',
+ name => 'Name2',
+ area => 'area2',
+ group => 'group2',
+ subgroup => 'subgroup2',
+ type => 'type2',
+ notes => 'note2',
+ cache_expiry => 'null',
+ public => 'null'
+};
+my $report_id1 = save_report($sample_report1);
+my $report_id2 = save_report($sample_report2);
+like( $report_id1, '/^\d+$/', "Save_report returns an id" );
+like( $report_id2, '/^\d+$/', "Save_report returns an id" );
+is( scalar( keys get_saved_reports() ),
+ $count + 2, "Report1 and report2 have been added" );
+
+#Test delete_report
+#It would be better if delete_report has return values
+delete_report( $report_id1, $report_id2 );
+is( scalar( keys get_saved_reports() ),
+ $count, "Report1 and report2 have been deleted" );
+
+#FIX ME: Currently, this test doesn't pass because delete_report doesn't test if one or more parameters are given
+#is (deleted_report(),undef, "Without id deleted_report returns undef");
+
+#End transaction
+$dbh->rollback;