Bug 17501: Introduce Koha::Object[s] classes for UploadedFile(s)

In the next set of patches we will start using these new classes in
Koha::Upload, and scripts using it.
This is just the starting point of that migration.

Test plan:
[1] Run t/db_dependent/Upload.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
Marcel de Rooy 2016-11-19 17:24:11 +01:00 committed by Kyle M Hall
parent 57568b9a0b
commit 44d4dc7040
3 changed files with 176 additions and 1 deletions

73
Koha/UploadedFile.pm Normal file
View file

@ -0,0 +1,73 @@
package Koha::UploadedFile;
# Copyright Rijksmuseum 2016
#
# 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, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
use Modern::Perl;
#use Koha::Database;
use parent qw(Koha::Object);
=head1 NAME
Koha::UploadedFile - Koha::Object class for single uploaded file
=head1 SYNOPSIS
use Koha::UploadedFile;
=head1 DESCRIPTION
Description
=head1 METHODS
=head2 INSTANCE METHODS
=head3 delete
Delete uploaded file (to be extended)
=cut
sub delete {
my ( $self, $params ) = @_;
$self->SUPER::delete( $params );
}
=head2 CLASS METHODS
=head3 _type
Returns name of corresponding DBIC resultset
=cut
sub _type {
return 'UploadedFile';
}
=head1 AUTHOR
Marcel de Rooy (Rijksmuseum)
Koha Development Team
=cut
1;

84
Koha/UploadedFiles.pm Normal file
View file

@ -0,0 +1,84 @@
package Koha::UploadedFiles;
# Copyright Rijksmuseum 2016
#
# 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, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
use Modern::Perl;
#use Koha::Database;
use Koha::UploadedFile;
use parent qw(Koha::Objects);
=head1 NAME
Koha::UploadedFiles - Koha::Objects class for uploaded files
=head1 SYNOPSIS
use Koha::UploadedFiles;
=head1 DESCRIPTION
Description
=head1 METHODS
=head2 INSTANCE METHODS
=head3 delete
Delete uploaded files
=cut
sub delete {
my ( $self, $params ) = @_;
$self->SUPER::delete( $params );
}
=head2 CLASS METHODS
=head3 _type
Returns name of corresponding DBIC resultset
=cut
sub _type {
return 'UploadedFile';
}
=head3 object_class
Returns name of corresponding Koha object class
=cut
sub object_class {
return 'Koha::UploadedFile';
}
=head1 AUTHOR
Marcel de Rooy (Rijksmuseum)
Koha Development Team
=cut
1;

View file

@ -2,7 +2,7 @@
use Modern::Perl;
use File::Temp qw/ tempdir /;
use Test::More tests => 8;
use Test::More tests => 9;
use Test::MockModule;
use t::lib::Mocks;
@ -11,6 +11,7 @@ use t::lib::TestBuilder;
use C4::Context;
use Koha::Database;
use Koha::Upload;
use Koha::UploadedFiles;
my $schema = Koha::Database->new->schema;
$schema->storage->txn_begin;
@ -204,6 +205,23 @@ sub test08 { # allows_add_by
1, 'Patron is still allowed to add uploaded files' );
}
# Additional tests for Koha::UploadedFiles
# TODO Rearrange the tests after this migration
subtest 'Some basic CRUD testing' => sub {
plan tests => 2;
# Test find and attribute id, delete and search
my $builder = t::lib::TestBuilder->new;
my $upload01 = $builder->build({ source => 'UploadedFile' });
my $found = Koha::UploadedFiles->find( $upload01->{id} );
is( $found->id, $upload01->{id}, 'Koha::Object returns id' );
$found->delete;
$found = Koha::UploadedFiles->search(
{ id => $upload01->{id} },
);
is( $found->count, 0, 'Delete seems successful' );
};
sub newCGI {
my ( $class, $hook ) = @_;
my $read = 0;