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