use Modern::Perl;

use C4::Context;
use Koha::Config;

use Test::More tests => 5;
use Test::Warn;
use t::lib::Mocks;

$ENV{TZ} = q{};
t::lib::Mocks::mock_config( 'timezone', q{} );
my $config = Koha::Config->get_instance;
is( $config->timezone, 'local',
    'Got local timezone with no env or config timezone set' );

$ENV{TZ} = 'Antarctica/Macquarie';
is(
    $config->timezone,
    'Antarctica/Macquarie',
    'Got correct timezone using ENV, overrides local time'
);

t::lib::Mocks::mock_config( 'timezone', 'Antarctica/South_Pole' );
is(
    $config->timezone,
    'Antarctica/South_Pole',
    'Got correct timezone using config, overrides env'
);

t::lib::Mocks::mock_config( 'timezone', 'Your/Timezone' );
warning_is {
    is( $config->timezone, 'local', 'Invalid timezone falls back to local' ); }
    'Invalid timezone in koha-conf.xml (Your/Timezone)',
    'Invalid timezone raises a warning';
