require 'test/unit'
require 'carat/timelimit'


class TC_TimeLimit < Test::Unit::TestCase

  def setup
    # setup a 3 second time limit
    @t = TimeLimit.new(2)
  end

  def test_outoftime
    assert_raises( TimeoutError ) {
      @t.start
      sleep 3
      @t.stop
    } 
  end

  # This has been removed becuase it is too close to call.
  # Sometimes and error is returned sometimes it is not.
  #def test_nickoftime
  #  assert_raises( TimeoutError ) {
  #    @t.start
  #    sleep 2
  #    @t.stop
  #  } 
  #end

  def test_intime
    assert_nothing_raised {
      @t.start
      sleep 1
      @t.stop
    } 
  end

  def test_intime
    assert_nothing_raised {
      @t.start
      sleep 1
      @t.stop
    }
  end

end