1#!/usr/bin/perl -w
2#
3# HU.pm
4#
5# Version 0.1 - test of Hungarian (HU) F::Q
6# This version based on za.t module
7#
8# Zoltan Levardy <zoltan at levardy dot org>
9# 2009
10# 2019-06-22: Removed failing fund, replaced with HU0000705280.
11#  Surrounded failing equity check for OTP in a TODO block.
12#  Bruce Schuck <bschuck at asgard hyphen systems dot com>
13
14use strict;
15
16use constant DEBUG => $ENV{DEBUG};
17use if DEBUG, 'Smart::Comments';
18
19use Test::More;
20use Finance::Quote;
21
22if ( not $ENV{ONLINE_TEST} ) {
23    plan skip_all => 'Set $ENV{ONLINE_TEST} to run this test';
24}
25
26plan tests => 21;
27
28# Test za functions.
29
30my $q        = Finance::Quote->new("HU");
31my $year     = ( localtime() )[5] + 1900;
32my $lastyear = $year - 1;
33
34# getting quotes for shares by ticker (OTP, MTELEKOM)
35# funds by ISIN (HU0000702709,HU0000706437)
36# and finally an incorrect ticker/isin is ZOL, must fail.
37my %quotes = $q->hu( "OTP", "HU0000705280", "HU0000702709", "ZOL" );
38ok(%quotes);
39
40### quotes : %quotes
41
42# Check that the last and date values are defined.
43ok( $quotes{ "OTP", "success" } );
44ok( $quotes{ "OTP", "last" } > 0 );
45ok( length( $quotes{ "OTP", "date" } ) > 0 );
46ok(    substr( $quotes{ "OTP", "isodate" }, 0, 4 ) == $year
47    || substr( $quotes{ "OTP", "isodate" }, 0, 4 ) == $lastyear );
48ok(    substr( $quotes{ "OTP", "date" }, 6, 4 ) == $year
49    || substr( $quotes{ "OTP", "date" }, 6, 4 ) == $lastyear );
50ok( $quotes{ "OTP", "currency" } eq "HUF" );
51
52# MKB HUF Liquidity Fund: HU0000705280
53ok( $quotes{ "HU0000705280", "success" } );
54ok( $quotes{ "HU0000705280", "last" } > 0 );
55ok( length( $quotes{ "HU0000705280", "date" } ) > 0 );
56ok(    substr( $quotes{ "HU0000705280", "isodate" }, 0, 4 ) == $year
57    || substr( $quotes{ "HU0000705280", "isodate" }, 0, 4 ) == $lastyear );
58ok(    substr( $quotes{ "HU0000705280", "date" }, 6, 4 ) == $year
59    || substr( $quotes{ "HU0000705280", "date" }, 6, 4 ) == $lastyear );
60ok( $quotes{ "HU0000705280", "currency" } eq "HUF" );
61
62# Fund: Budapest II, isin: HU0000702709
63ok( $quotes{ "HU0000702709", "success" } );
64ok( $quotes{ "HU0000702709", "last" } > 0 );
65ok( length( $quotes{ "HU0000702709", "date" } ) > 0 );
66ok(    substr( $quotes{ "HU0000702709", "isodate" }, 0, 4 ) == $year
67    || substr( $quotes{ "HU0000702709", "isodate" }, 0, 4 ) == $lastyear );
68ok(    substr( $quotes{ "HU0000702709", "date" }, 6, 4 ) == $year
69    || substr( $quotes{ "HU0000702709", "date" }, 6, 4 ) == $lastyear );
70ok( $quotes{ "HU0000702709", "currency" } eq "HUF" );
71
72# Check that a ZOL fund returns no-success.
73ok( !$quotes{ "ZOL", "success" } );
74ok( $quotes{ "ZOL",  "errormsg" } eq "Fetch from bse or bamosz failed" );
75