Sha256: 436d11a66689151b3e5aa5cac0c7a6eca28a2661ff7c449f3bf92e44d2134132
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
require 'test_helper' context "Correct handling of encapsulated methods" do def setup if !defined?(@@encapsulated) super @@encapsulated = true Extension.new "encapsulation" do |e| e.sources full_dir("headers/class_methods.h") node = e.namespace "encapsulation" end require 'encapsulation' end end specify "should handle private/protected/public" do ext = Extended.new ext.public_method.should == 1 should.raise NoMethodError do ext.private_method end should.raise NoMethodError do ext.protected_method end end specify "should handle virtual methods" do ext_factory = ExtendedFactory.new ext = ext_factory.new_instance ext.fundamental_type_virtual_method.should == 1 ext.user_defined_type_virtual_method.class.should == Base end specify "don't wrap methods that use non-public types in their arguments" do arg = ArgumentAccess.new # Single argument methods should.raise NoMethodError do arg.wrap_me_private end should.raise NoMethodError do arg.wrap_me_protected end should.not.raise NoMethodError do arg.wrap_me_public ArgumentAccess::PublicStruct.new end # Multiple argument methods should.raise NoMethodError do arg.wrap_me_many_no end should.not.raise NoMethodError do arg.wrap_me_many_yes(1, 2.0, ArgumentAccess::PublicStruct.new) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rbplusplus-0.9.1 | test/class_methods_encapsulate_test.rb |