#!/usr/bin/perl
#
# This Koha test module is a stub!
# Add more tests here!!!

use strict;
use warnings;

use Test::NoWarnings;
use Test::More tests => 11;

BEGIN {
    use_ok('C4::Output::JSONStream');
}

my $json = C4::Output::JSONStream->new;
is( $json->output, '{}', "Making sure JSON output is blank just after its created." );
$json->param( issues => [ 'yes!', 'please', 'no' ] );
is( $json->output, '{"issues":["yes!","please","no"]}', "Making sure JSON output has added what we told it to." );
$json->param( stuff => ['realia'] );
like( $json->output, '/"stuff":\["realia"\]/', "Making sure JSON output has added more params correctly." );
like( $json->output, '/"issues":\["yes!","please","no"\]/', "Making sure existing elements remain in JSON output" );
$json->param( stuff => [ 'fun', 'love' ] );
like( $json->output, '/"stuff":\["fun","love"\]/',          "Making sure JSON output can overwrite params." );
like( $json->output, '/"issues":\["yes!","please","no"\]/', "Making non overwritten elements remain in JSON output" );

eval { $json->param(die) };
ok( $@, 'Dies' );

eval { $json->param( die => [ 'yes', 'sure', 'now' ] ) };
ok( !$@, 'Does not die.' );
eval { $json->param( die => [ 'yes', 'sure', 'now' ], die2 => ) };
ok( $@, 'Dies.' );
