1#!/usr/bin/perl -w 2use strict; 3use Test::More; 4use Finance::Quote; 5 6if ( not $ENV{ONLINE_TEST} ) { 7 plan skip_all => 'Set $ENV{ONLINE_TEST} to run this test'; 8} 9 10plan tests => 46; 11 12# Test GoldMoney functions. 13my $q = Finance::Quote->new("GoldMoney"); 14 15foreach my $currency ( 'EUR', 'USD' ) { 16 $q->set_currency($currency); 17 my %quotes = 18 $q->fetch( "goldmoney", "gold", "silver", "platinum", "BOGUS" ); 19 ok(%quotes); 20 21 # Check that sound information is returned for gold, silver and platinum. 22 ok( $quotes{ "gold", "success" }, 'gold price lookup' ); 23 ok( $quotes{ "gold", "last" } > 0, 24 "Gold is quoted at " . $quotes{ "gold", "last" } ); 25 ok( $quotes{ "gold", "currency" } eq $currency, "currency is $currency" ); 26 ok( length( $quotes{ "gold", "date" } ) > 0 ); 27 ok( length( $quotes{ "gold", "time" } ) > 0 ); 28 29 ok( $quotes{ "silver", "success" }, 'silver price lookup' ); 30 ok( $quotes{ "silver", "last" } > 0 ); 31 ok( $quotes{ "silver", "currency" } eq $currency, "currency is $currency" ); 32 ok( length( $quotes{ "silver", "date" } ) > 0 ); 33 ok( length( $quotes{ "silver", "time" } ) > 0 ); 34 35 ok( $quotes{ "platinum", "success" }, 'platinum price lookup' ); 36 ok( $quotes{ "platinum", "last" } > 0 ); 37 ok( $quotes{ "platinum", "currency" } eq $currency, 38 "currency is $currency" ); 39 ok( length( $quotes{ "platinum", "date" } ) > 0 ); 40 ok( length( $quotes{ "platinum", "time" } ) > 0 ); 41 42 my $year = ( localtime() )[5] + 1900; 43 ok( ( substr( $quotes{ "gold", "isodate" }, 0, 4 ) == $year ) ); 44 ok( ( substr( $quotes{ "gold", "date" }, 6, 4 ) == $year ) ); 45 ok( ( substr( $quotes{ "silver", "isodate" }, 0, 4 ) == $year ) ); 46 ok( ( substr( $quotes{ "silver", "date" }, 6, 4 ) == $year ) ); 47 ok( ( substr( $quotes{ "platinum", "isodate" }, 0, 4 ) == $year ) ); 48 ok( ( substr( $quotes{ "platinum", "date" }, 6, 4 ) == $year ) ); 49 50 # Check that a bogus symbol returns no-success. 51 ok( !$quotes{ "BOGUS", "success" } ); 52} 53