/lib/rex/exceptions.rb.ut.rb
Ruby | 45 lines | 32 code | 10 blank | 3 comment | 3 complexity | 7a7d67363e0e2b8eba9a1ca134daeb82 MD5 | raw file
Possible License(s): BSD-3-Clause, Apache-2.0, LGPL-2.1, GPL-2.0, MIT
- #!/usr/bin/env ruby
- # -*- coding: binary -*-
- $:.unshift(File.join(File.dirname(__FILE__), '..'))
- require 'test/unit'
- require 'rex/exceptions'
- module Rex
- module Exceptions
- class UnitTest < Test::Unit::TestCase
- def test_exceptions
- Rex.constants.each { |const|
- mod = Rex.const_get(const)
- if ((mod.kind_of?(Class) == false) ||
- (mod.ancestors.include?(Rex::Exception) == false))
- next
- end
- begin
- raise mod.new
- rescue ::ArgumentError
- rescue mod => detail
- assert_respond_to(detail, 'to_s', "#{mod} does not implement to_s")
- assert_not_nil(detail.to_s, "invalid to_s")
- end
- }
- # Test communication error detail strings
- begin
- raise ConnectionRefused.new('127.0.0.1', 4444)
- rescue HostCommunicationError => detail
- assert_match(/^The connection(.*)\(127.0.0.1:4444\)/, detail.to_s)
- assert_equal('127.0.0.1', detail.host)
- assert_equal(4444, detail.port)
- end
- end
- end
- end
- end