Sha256: e9512152d180815af1c7a447798e34dba99901e674827e5dc7557abe8b013d91
Contents?: true
Size: 1.48 KB
Versions: 3
Compression:
Stored size: 1.48 KB
Contents
require File.dirname(__FILE__) + "/test_helper.rb" require 'adhearsion/core_extensions/relationship_properties' describe "Module#relationships" do describe "Overriding relationships in subclasses" do it "should be overridable in subclasses" do super_class = Class.new do relationships :storage_medium => Array end sub_class = Class.new(super_class) do relationships :storage_medium => Hash end super_class.new.send(:storage_medium).should.equal Array sub_class.new.send(:storage_medium).should.equal Hash end it "should not affect other defined relationships" do super_class = Class.new do relationships :io_class => TCPSocket, :error_class => StandardError end sub_class = Class.new(super_class) do relationships :error_class => RuntimeError end super_class.new.send(:io_class).should.equal TCPSocket sub_class.new.send(:io_class).should.equal TCPSocket end end it "should be accessible within instance methods of that Class as another instance method" do klass = Class.new do relationships :struct => Struct def new_struct struct.new end end end it "should be accessible in subclasses" do super_class = Class.new do relationships :number_class => Bignum end Class.new(super_class) do def number_class_name number_class.name end end.new.number_class_name.should == "Bignum" end end
Version data entries
3 entries across 3 versions & 2 rubygems