Sha256: 4ab4c28181a1da43904c57ea267273e7dbd356e62dc0bb8be5c67c9f87851ad5

Contents?: true

Size: 998 Bytes

Versions: 1

Compression:

Stored size: 998 Bytes

Contents

#####################################################
# tc_interface.rb
#
# Test suite for the Interface module.
#####################################################
if File.basename(Dir.pwd) == "test"
	$:.unshift "../lib"
end

require "test/unit"
require "interface"

TestInterface = interface{
	required_methods :foo, :bar
}

TestSubInterface = interface{
	extend TestInterface
	required_methods :baz
}

class A; end

class B
	def foo; end
	def bar; end
end

class C < B
	def baz; end
end

class TC_Interface < Test::Unit::TestCase
	def test_version
		assert_equal("0.1.0",Interface::VERSION)
	end
	
	def test_requirements_not_met
		assert_raises(Interface::MethodMissing){
			A.new.extend(TestInterface)
		}
		assert_raises(Interface::MethodMissing){
			B.new.extend(TestSubInterface)
		}
	end
	
	def test_requirements_met
		assert_nothing_raised{ B.new.extend(TestInterface) }
		assert_nothing_raised{ C.new.extend(TestSubInterface) }
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
carats-0.3.0 lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/tc_interface.rb