Bugzilla – Attachment 181127 Details for
Bug 39092
When loading an ILL backend plugin it should be cached
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 39092: Unit tests
Bug-39092-Unit-tests.patch (text/plain), 5.48 KB, created by
Tomás Cohen Arazi (tcohen)
on 2025-04-17 18:57:09 UTC
(
hide
)
Description:
Bug 39092: Unit tests
Filename:
MIME Type:
Creator:
Tomás Cohen Arazi (tcohen)
Created:
2025-04-17 18:57:09 UTC
Size:
5.48 KB
patch
obsolete
>From 0e6088d089e7b2bc603d8594f0760bcd0ee414d4 Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@theke.io> >Date: Tue, 11 Feb 2025 11:02:37 -0300 >Subject: [PATCH] Bug 39092: Unit tests > >--- > t/db_dependent/Koha/Plugins/ILL/Backends.t | 68 ++++++++++++++++++++++ > t/lib/plugins/Koha/Plugin/BackendClass.pm | 38 ++++++++++++ > t/lib/plugins/Koha/Plugin/ILL/TestClass.pm | 42 +++++++++++++ > 3 files changed, 148 insertions(+) > create mode 100755 t/db_dependent/Koha/Plugins/ILL/Backends.t > create mode 100644 t/lib/plugins/Koha/Plugin/BackendClass.pm > create mode 100644 t/lib/plugins/Koha/Plugin/ILL/TestClass.pm > >diff --git a/t/db_dependent/Koha/Plugins/ILL/Backends.t b/t/db_dependent/Koha/Plugins/ILL/Backends.t >new file mode 100755 >index 00000000000..992677ce6e0 >--- /dev/null >+++ b/t/db_dependent/Koha/Plugins/ILL/Backends.t >@@ -0,0 +1,68 @@ >+#!/usr/bin/perl >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it under the >+# terms of the GNU General Public License as published by the Free Software >+# Foundation; either version 3 of the License, or (at your option) any later >+# version. >+# >+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY >+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR >+# A PARTICULAR PURPOSE. See the GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License along >+# with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+use File::Basename; >+use Test::More tests => 4; >+ >+use t::lib::Mocks; >+use t::lib::TestBuilder; >+ >+use Koha::Database; >+ >+BEGIN { >+ # Mock pluginsdir before loading Plugins module >+ my $path = dirname(__FILE__) . '/../../../../lib/plugins'; >+ t::lib::Mocks::mock_config( 'pluginsdir', $path ); >+ >+ use_ok('Koha::Plugins'); >+ use_ok('Koha::Plugins::Handler'); >+ use_ok('Koha::Plugin::BackendClass'); >+} >+ >+my $schema = Koha::Database->new->schema; >+my $builder = t::lib::TestBuilder->new; >+ >+t::lib::Mocks::mock_config( 'enable_plugins', 1 ); >+ >+subtest 'get_backend_plugin(), new_ill_backend() and load_backend() tests' => sub { >+ >+ plan tests => 6; >+ >+ $schema->storage->txn_begin; >+ >+ my $plugins = Koha::Plugins->new; >+ $plugins->InstallPlugins; >+ >+ my $plugin = Koha::ILL::Request->new->get_backend_plugin('BackendClass'); >+ >+ is( >+ ref($plugin), 'Koha::Plugin::BackendClass', >+ 'Returns our Test Plugin which implements the Test Plugin backend' >+ ); >+ my $backend = $plugin->new_ill_backend(); >+ is( ref($backend), 'Koha::Plugin::ILL::TestClass', 'Returns the right object class' ); >+ >+ my $request = Koha::ILL::Request->new->load_backend('BackendClass'); >+ ok( $request->{_plugin}, 'Instantiated plugin stored for later use' ); >+ is( ref( $request->{_plugin} ), 'Koha::Plugin::BackendClass', 'Class is correct' ); >+ >+ ok( $request->{_my_backend}, 'Instantiated backend stored for later use' ); >+ is( ref( $request->{_my_backend} ), 'Koha::Plugin::ILL::TestClass', 'Returns the right object class' ); >+ >+ Koha::Plugins::Methods->delete; >+ $schema->storage->txn_rollback; >+}; >diff --git a/t/lib/plugins/Koha/Plugin/BackendClass.pm b/t/lib/plugins/Koha/Plugin/BackendClass.pm >new file mode 100644 >index 00000000000..67372a60fd2 >--- /dev/null >+++ b/t/lib/plugins/Koha/Plugin/BackendClass.pm >@@ -0,0 +1,38 @@ >+package Koha::Plugin::BackendClass; >+ >+use Modern::Perl; >+ >+use base qw(Koha::Plugins::Base); >+ >+our $VERSION = "v1.01"; >+our $metadata = { >+ name => 'BackendClass', >+ author => 'Koha Community', >+ description => 'Plugin testing backends as their own class', >+ date_authored => '2013-01-14', >+ date_updated => '2013-01-14', >+ minimum_version => '3.11', >+ maximum_version => undef, >+ version => $VERSION, >+ namespace => 'backend_class', >+}; >+ >+sub new { >+ my ( $class, $args ) = @_; >+ $args->{'metadata'} = $metadata; >+ my $self = $class->SUPER::new($args); >+ return $self; >+} >+ >+sub ill_backend { >+ my ($self) = @_; >+ return 'BackendClass'; >+} >+ >+sub new_ill_backend { >+ my ( $self, $args ) = @_; >+ require Koha::Plugin::ILL::TestClass; >+ return Koha::Plugin::ILL::TestClass->new($args); >+} >+ >+1; >diff --git a/t/lib/plugins/Koha/Plugin/ILL/TestClass.pm b/t/lib/plugins/Koha/Plugin/ILL/TestClass.pm >new file mode 100644 >index 00000000000..caad5fbbfb7 >--- /dev/null >+++ b/t/lib/plugins/Koha/Plugin/ILL/TestClass.pm >@@ -0,0 +1,42 @@ >+package Koha::Plugin::ILL::TestClass; >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it under the >+# terms of the GNU General Public License as published by the Free Software >+# Foundation; either version 3 of the License, or (at your option) any later >+# version. >+# >+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY >+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR >+# A PARTICULAR PURPOSE. See the GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License along >+# with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+=head1 NAME >+ >+Koha::Plugin::ILL::TestClass - Dummy ILL backend class >+ >+=head1 API >+ >+=head2 Class methods >+ >+=head3 new >+ >+ my $backend = Koha::Plugin::ILL::TestClass->new; >+ >+Constructor. >+ >+=cut >+ >+sub new { >+ my ( $class, $args ) = @_; >+ my $self = \$args; >+ bless( $self, $class ); >+ return $self; >+} >+ >+1; >-- >2.49.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 39092
:
177735
|
177736
|
177737
|
177738
|
181127
|
181128
|
181129
|
181130
|
181200
|
181201
|
181202
|
181203
|
181240
|
181241
|
181242
|
181243