#!/usr/bin/ruby -I./lib/ -I../lib/


require 'custodian/settings'
require 'test/unit'



#
# Unit test for our configuration file reader.
#
#
class TestConfigurationSingleton < Test::Unit::TestCase

  #
  # Create the test suite environment: NOP.
  #
  def setup
  end

  #
  # Destroy the test suite environment: NOP.
  #
  def teardown
  end


  #
  # Test that we're genuinely a singleton
  #
  def test_singleton
    a = Custodian::Settings.instance()
    b = Custodian::Settings.instance()

    assert( a )
    assert( b )
    assert_equal( a.object_id, b.object_id )
  end


  #
  #  Test that our settings are suitable types
  #
  def test_types
    settings = Custodian::Settings.instance()


    # retry delay - probably unset.
    a = settings.retry_delay
    assert( a.class == Fixnum )

    # store a number
    settings._store( "retry_delay", 5 )
    a = settings.retry_delay
    assert( a.class == Fixnum )
    assert( a == 5 )

    # store a string
    settings._store( "retry_delay", "35" )
    a = settings.retry_delay
    assert( a.class == Fixnum )
    assert( a == 35 )



    # timeout - probably unset.
    a = settings.timeout()
    assert( a.class == Fixnum )

    # store a number
    settings._store( "timeout", 5 )
    a = settings.timeout()
    assert( a.class == Fixnum )
    assert( a == 5 )

    # store a string
    settings._store( "timeout", "35" )
    a = settings.timeout()
    assert( a.class == Fixnum )
    assert( a == 35 )


  end

end