Bug 25638: Add tests for JSON conversion vs DBD::mysql

We have the situation of needing to cast numbers so they are not
confused in JSON with strings by DBD::mysql returning them with the
wrong internal flags.

We have also recently removed the cast, and adding it back now.
This test could help us detect this situation in case we make changes in
the area, and even on specific libraries versions.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
(cherry picked from commit 0569072fc1)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
Tomas Cohen Arazi 2020-06-05 15:44:39 -03:00 committed by Lucas Gass
parent d2996eea5f
commit 2c710ff910
1 changed files with 9 additions and 1 deletions

View File

@ -27,11 +27,14 @@ use C4::Circulation; # AddIssue
use C4::Biblio; # AddBiblio
use Koha::Database;
use Koha::Acquisition::Orders;
use Koha::DateUtils qw( dt_from_string );
use Koha::Libraries;
use Koha::Patrons;
use Koha::ApiKeys;
use JSON;
use Scalar::Util qw( isvstring );
use Try::Tiny;
@ -164,7 +167,7 @@ subtest 'discard_changes' => sub {
subtest 'TO_JSON tests' => sub {
plan tests => 8;
plan tests => 9;
$schema->storage->txn_begin;
@ -210,6 +213,11 @@ subtest 'TO_JSON tests' => sub {
like( $updated_on, $rfc3999_regex, "Date-time $updated_on formatted correctly");
like( $lastseen, $rfc3999_regex, "Date-time $updated_on formatted correctly");
# Test JSON doesn't receive strings
my $order = $builder->build_object({ class => 'Koha::Acquisition::Orders' });
$order = Koha::Acquisition::Orders->find( $order->ordernumber );
is_deeply( $order->TO_JSON, decode_json( encode_json( $order->TO_JSON ) ), 'Orders are similar' );
$schema->storage->txn_rollback;
};