Bug 17932: Unit tests

This patch adds unit tests for the Koha::Object::TO_JSON function.
It tests on top of Koha::Patron as Koha::Object needs to be
instantiated.

To test:
- Apply the patch
- Run:
  $ prove -v t/db_dependent/Koha/Object.t
=> SUCCESS: New tests for TO_JSON are run and return green.
- Sign off :-D

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
Tomás Cohen Arazi 2017-01-24 10:41:00 -03:00 committed by Kyle M Hall
parent 39d090a8b6
commit 02f781fee0

View file

@ -17,13 +17,15 @@
use Modern::Perl;
use Test::More tests => 7;
use Test::More tests => 8;
use Test::Warn;
use C4::Context;
use Koha::Database;
use Koha::DateUtils qw( dt_from_string );
use Scalar::Util qw( isvstring );
use t::lib::TestBuilder;
BEGIN {
@ -34,6 +36,8 @@ BEGIN {
my $schema = Koha::Database->new->schema;
$schema->storage->txn_begin;
my $builder = t::lib::TestBuilder->new();
my $categorycode = $schema->resultset('Category')->first()->categorycode();
my $branchcode = $schema->resultset('Branch')->first()->branchcode();
@ -107,4 +111,28 @@ subtest 'discard_changes' => sub {
);
};
subtest 'TO_JSON tests' => sub {
plan tests => 5;
my $borrowernumber = $builder->build(
{ source => 'Borrower',
value => { lost => 1,
gonenoaddress => 0 } })->{borrowernumber};
my $patron = Koha::Patrons->find($borrowernumber);
my $lost = $patron->TO_JSON()->{lost};
my $gonenoaddress = $patron->TO_JSON->{gonenoaddress};
ok( $lost->isa('Mojo::JSON::_Bool'), 'Boolean attribute type is correct' );
is( $lost, 1, 'Boolean attribute value is correct (true)' );
ok( $gonenoaddress->isa('Mojo::JSON::_Bool'), 'Boolean attribute type is correct' );
is( $gonenoaddress, 0, 'Boolean attribute value is correct (false)' );
ok( !isvstring($patron->borrowernumber), 'Integer values are not coded as strings' );
};
1;