#!/usr/bin/ruby -w
#
# $Id: tc_aex,v 1.1 2004/07/14 09:58:47 ianmacd Exp $

$: << File.dirname(__FILE__) + "/../lib"

require 'test/unit'
require 'finance/quote'
require 'finance/quote/aex'

include Finance

class TC_AEXTest < Test::Unit::TestCase

  # Test base method.
  #
  def test_aex
    q = Quote.new

    assert_instance_of( Finance::Quote::QuoteData,
		        qd = q.aex( 'phi', 'asml' ) )

    [ 'phi', 'asml' ].each do |stock|

      # Check the most reliable indicators of success.
      assert( qd[stock][:success], "Look-up of #{stock.upcase} failed." )
      assert( qd[stock][:last].to_f > 0 )
      assert( qd[stock][:date] != '' )
      assert( qd[stock][:time] != '' )
      assert_equal( 'EUR', qd[stock][:currency] )

    end

    # Check that a bogus stock returns failure.
    assert_instance_of( Finance::Quote::QuoteData, qd = q.aex( 'bogus' ) )
    assert( ! qd['bogus'][:success], 'Bogus stock look-up returned success.' )

  end

  def test_fetch
    q = Quote.new

    assert_instance_of( Finance::Quote::QuoteData,
		        qd = q.fetch( 'aex', 'aab' ) )

    # Check the most reliable indicators of success.
    assert( qd['AAB'][:success], "Look-up of AAB failed." )
    assert( qd['AAB'][:last].to_f > 0 )
  end

end
