Bug 20581: Unit tests for status_alias
authorAndrew Isherwood <andrew.isherwood@ptfs-europe.com>
Tue, 17 Apr 2018 16:00:32 +0000 (17:00 +0100)
committerNick Clemens <nick@bywatersolutions.com>
Fri, 22 Feb 2019 14:31:31 +0000 (14:31 +0000)
This patch adds unit tests for the specific status_alias functionality
added in this bug

- Creation of the ILLSTATUS authorised value
- Illrequest->statusalias accessor
- Illrequest->status overloading to reset status_alias

To test:
1) Apply this patch
2) prove t/db_dependent/Illrequests.t

Signed-off-by: Niamh.Walker-Headon@it-tallaght.ie

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

t/db_dependent/Illrequests.t

index a9f933a..fc20d2d 100644 (file)
@@ -22,13 +22,15 @@ use Koha::Database;
 use Koha::Illrequestattributes;
 use Koha::Illrequest::Config;
 use Koha::Patrons;
+use Koha::AuthorisedValueCategories;
+use Koha::AuthorisedValues;
 use t::lib::Mocks;
 use t::lib::TestBuilder;
 use Test::MockObject;
 use Test::MockModule;
 use Test::Exception;
 
-use Test::More tests => 10;
+use Test::More tests => 11;
 
 my $schema = Koha::Database->new->schema;
 my $builder = t::lib::TestBuilder->new;
@@ -795,3 +797,56 @@ subtest 'Checking Limits' => sub {
 
     $schema->storage->txn_rollback;
 };
+
+subtest 'Custom statuses' => sub {
+
+    plan tests => 3;
+
+    $schema->storage->txn_begin;
+
+    my $cat = Koha::AuthorisedValueCategories->search(
+        {
+            category_name => 'ILLSTATUS'
+        }
+    );
+
+    if ($cat->count == 0) {
+        $cat  = $builder->build_object(
+            {
+                class => 'Koha::AuthorisedValueCategory',
+                value => {
+                    category_name => 'ILLSTATUS'
+                }
+            }
+        );
+    };
+
+    my $av = $builder->build_object(
+        {
+            class => 'Koha::AuthorisedValues',
+            value => {
+                category => 'ILLSTATUS'
+            }
+        }
+    );
+
+    is($av->category, 'ILLSTATUS',
+       "Successfully created authorised value for custom status");
+
+    my $ill_req = $builder->build_object(
+        {
+            class => 'Koha::Illrequests',
+            value => {
+                status_alias => $av->id
+            }
+        }
+    );
+    isa_ok($ill_req->statusalias, 'Koha::AuthorisedValue',
+           "statusalias correctly returning Koha::AuthorisedValue object");
+
+    $ill_req->status("COMP");
+    is($ill_req->statusalias, undef,
+        "Koha::Illrequest->status overloading resetting status_alias");
+
+    $schema->storage->txn_rollback;
+};