[Koha-patches] [PATCH] test suite: C4::ImportBatch

Andrew Moore andrew.moore at liblime.com
Fri Dec 19 23:12:25 CET 2008


Here are some tests for functions in C4::ImportBatch.
---
 t/lib/KohaTest/ImportBatch.pm                      |   23 +++++++++
 t/lib/KohaTest/ImportBatch/AddImportBatch.pm       |   31 ++++++++++++
 .../KohaTest/ImportBatch/AddItemsToImportBiblio.pm |   29 +++++++++++
 t/lib/KohaTest/ImportBatch/GetImportBatch.pm       |   45 +++++++++++++++++
 t/lib/KohaTest/ImportBatch/GetImportRecordMarc.pm  |   51 ++++++++++++++++++++
 t/lib/KohaTest/ImportBatch/GetZ3950BatchId.pm      |   42 ++++++++++++++++
 6 files changed, 221 insertions(+), 0 deletions(-)
 create mode 100644 t/lib/KohaTest/ImportBatch/AddImportBatch.pm
 create mode 100644 t/lib/KohaTest/ImportBatch/AddItemsToImportBiblio.pm
 create mode 100644 t/lib/KohaTest/ImportBatch/GetImportBatch.pm
 create mode 100644 t/lib/KohaTest/ImportBatch/GetImportRecordMarc.pm
 create mode 100644 t/lib/KohaTest/ImportBatch/GetZ3950BatchId.pm

diff --git a/t/lib/KohaTest/ImportBatch.pm b/t/lib/KohaTest/ImportBatch.pm
index 82c703f..35f2b2e 100644
--- a/t/lib/KohaTest/ImportBatch.pm
+++ b/t/lib/KohaTest/ImportBatch.pm
@@ -103,4 +103,27 @@ sub shutdown_50_remove_matcher : Test( shutdown => 6) {
     delete $self->{'matcher_id'};
 }
 
+=head2 UTILITY METHODS
+
+=cut
+
+sub add_import_batch {
+    my $self       = shift;
+    my $test_batch = shift
+      || {
+        overlay_action => 'create_new',
+        import_status  => 'staging',
+        batch_type     => 'batch',
+        file_name      => 'foo',
+        comments       => 'inserted during automated testing',
+      };
+    my $batch_id = AddImportBatch( $test_batch->{'overlay_action'},
+                                   $test_batch->{'import_status'},
+                                   $test_batch->{'batch_type'},
+                                   $test_batch->{'file_name'},
+                                   $test_batch->{'comments'}, );
+    return $batch_id;
+}
+
+
 1;
diff --git a/t/lib/KohaTest/ImportBatch/AddImportBatch.pm b/t/lib/KohaTest/ImportBatch/AddImportBatch.pm
new file mode 100644
index 0000000..7b97e72
--- /dev/null
+++ b/t/lib/KohaTest/ImportBatch/AddImportBatch.pm
@@ -0,0 +1,31 @@
+package KohaTest::ImportBatch::AddImportBatch;
+use base qw( KohaTest::ImportBatch );
+
+use strict;
+use warnings;
+
+use Test::More;
+
+use C4::ImportBatch;
+use C4::Matcher;
+use C4::Biblio;
+
+
+=head3 add_one
+
+=cut
+
+sub add_one : Test( 1 ) {
+    my $self = shift;
+
+    my $batch_id = AddImportBatch(
+        'create_new',                           #overlay_action
+        'staging',                              # import_status
+        'batch',                                # batc_type
+        'foo',                                  # file_name
+        'inserted during automated testing',    # comments
+    );
+    ok( $batch_id, "successfully inserted batch: $batch_id" );
+}
+
+1;
diff --git a/t/lib/KohaTest/ImportBatch/AddItemsToImportBiblio.pm b/t/lib/KohaTest/ImportBatch/AddItemsToImportBiblio.pm
new file mode 100644
index 0000000..39d36df
--- /dev/null
+++ b/t/lib/KohaTest/ImportBatch/AddItemsToImportBiblio.pm
@@ -0,0 +1,29 @@
+package KohaTest::ImportBatch::getImportBatch;
+use base qw( KohaTest::ImportBatch );
+
+use strict;
+use warnings;
+
+use Test::More;
+
+use C4::ImportBatch;
+use C4::Matcher;
+use C4::Biblio;
+
+
+sub something : Test( 2 ) {
+    my $self = shift;
+
+    my $batch_id = $self->add_import_batch();
+    ok( $batch_id, 'we have a batch_id' );
+
+    my $import_record_id = 0;
+
+    my $marc_record = MARC::Record->new();
+    
+    my @import_item_ids = C4::ImportBatch::AddItemsToImportBiblio( $batch_id, $import_record_id, $marc_record );
+    is( scalar( @import_item_ids ), 0, 'none inserted' );
+
+}
+
+1;
diff --git a/t/lib/KohaTest/ImportBatch/GetImportBatch.pm b/t/lib/KohaTest/ImportBatch/GetImportBatch.pm
new file mode 100644
index 0000000..0b01707
--- /dev/null
+++ b/t/lib/KohaTest/ImportBatch/GetImportBatch.pm
@@ -0,0 +1,45 @@
+package KohaTest::ImportBatch::getImportBatch;
+use base qw( KohaTest::ImportBatch );
+
+use strict;
+use warnings;
+
+use Test::More;
+
+use C4::ImportBatch;
+use C4::Matcher;
+use C4::Biblio;
+
+
+=head3 add_one_and_find_it
+
+=cut
+
+sub add_one_and_find_it : Test( 7 ) {
+    my $self = shift;
+
+    my $batch = {
+        overlay_action => 'create_new',
+        import_status  => 'staging',
+        batch_type     => 'batch',
+        file_name      => 'foo',
+        comments       => 'inserted during automated testing',
+    };
+    my $batch_id = AddImportBatch(
+      $batch->{'overlay_action'},
+      $batch->{'import_status'},
+      $batch->{'batch_type'},
+      $batch->{'file_name'},
+      $batch->{'comments'},
+    );
+    ok( $batch_id, "successfully inserted batch: $batch_id" );
+
+    my $retrieved = GetImportBatch( $batch_id );
+
+    foreach my $key ( keys %$batch ) {
+        is( $retrieved->{$key}, $batch->{$key}, "both objects agree on $key" );
+    }
+    is( $retrieved->{'import_batch_id'}, $batch_id, 'batch_id' );
+}
+
+1;
diff --git a/t/lib/KohaTest/ImportBatch/GetImportRecordMarc.pm b/t/lib/KohaTest/ImportBatch/GetImportRecordMarc.pm
new file mode 100644
index 0000000..b933b35
--- /dev/null
+++ b/t/lib/KohaTest/ImportBatch/GetImportRecordMarc.pm
@@ -0,0 +1,51 @@
+package KohaTest::ImportBatch::GetImportRecordMarc;
+use base qw( KohaTest::ImportBatch );
+
+use strict;
+use warnings;
+
+use Test::More;
+
+use C4::ImportBatch;
+use C4::Matcher;
+use C4::Biblio;
+
+
+=head3 record_does_not_exist
+
+=cut
+
+sub record_does_not_exist : Test( 1 ) {
+    my $self = shift;
+
+    my $id = '999999999999';
+    my $marc = GetImportRecordMarc( $id );
+    ok( ! defined( $marc ), 'this marc is undefined' );
+
+}
+
+sub record_does_exist : Test( 4 ) {
+    my $self = shift;
+
+    # we need an import_batch, so let GetZ3950BatchId create one:
+    my $new_batch_id = GetZ3950BatchId('foo');
+    ok( $new_batch_id, "got a new batch ID: $new_batch_id" );
+
+    my $sth = C4::Context->dbh->prepare(
+        "INSERT INTO import_records (import_batch_id, marc, marcxml)
+                                    VALUES (?, ?, ?)"
+    );
+    my $execute = $sth->execute(
+        $new_batch_id,    # batch_id
+        'marc',           # marc
+        'marcxml',        # marcxml
+    );
+    ok( $execute, 'succesfully executed' );
+    my $import_record_id = C4::Context->dbh->{'mysql_insertid'};
+    ok( $import_record_id, 'we got an import_record_id' );
+
+    my $marc = GetImportRecordMarc($import_record_id);
+    ok( defined($marc), 'this marc is defined' );
+}
+
+1;
diff --git a/t/lib/KohaTest/ImportBatch/GetZ3950BatchId.pm b/t/lib/KohaTest/ImportBatch/GetZ3950BatchId.pm
new file mode 100644
index 0000000..f3f5d9c
--- /dev/null
+++ b/t/lib/KohaTest/ImportBatch/GetZ3950BatchId.pm
@@ -0,0 +1,42 @@
+package KohaTest::ImportBatch::GetZ3950BatchId;
+use base qw( KohaTest::ImportBatch );
+
+use strict;
+use warnings;
+
+use Test::More;
+
+use C4::ImportBatch;
+use C4::Matcher;
+use C4::Biblio;
+
+
+=head3 batch_does_not_exist
+
+=cut
+
+sub batch_does_not_exist : Test( 5 ) {
+    my $self = shift;
+
+    my $file_name = 'testing batch';
+
+    # lets make sure it doesn't exist first
+    my $sth = C4::Context->dbh->prepare('SELECT import_batch_id FROM import_batches
+                                         WHERE  batch_type = ?
+                                         AND    file_name = ?');
+    ok( $sth->execute( 'z3950', $file_name, ), 'execute' );
+    my $rowref = $sth->fetchrow_arrayref();
+    ok( !defined( $rowref ), 'this batch does not exist' );
+
+    # now let GetZ3950BatchId create one
+    my $new_batch_id = GetZ3950BatchId( $file_name );
+    ok( $new_batch_id, "got a new batch ID: $new_batch_id" );
+
+    # now search for the one that was just created
+    my $second_batch_id = GetZ3950BatchId( $file_name );
+    ok( $second_batch_id, "got a second batch ID: $second_batch_id" );
+    is( $second_batch_id, $new_batch_id, 'we got the same batch both times.' );
+}
+
+
+1;
-- 
1.5.6




More information about the Koha-patches mailing list