Revision: 3946 http://trac.macosforge.org/projects/ruby/changeset/3946 Author: lsansonetti@apple.com Date: 2010-04-20 16:14:49 -0700 (Tue, 20 Apr 2010) Log Message: ----------- added specs for Pointer#cast! Modified Paths: -------------- MacRuby/trunk/spec/macruby/core/pointer_spec.rb Modified: MacRuby/trunk/spec/macruby/core/pointer_spec.rb =================================================================== --- MacRuby/trunk/spec/macruby/core/pointer_spec.rb 2010-04-20 23:14:30 UTC (rev 3945) +++ MacRuby/trunk/spec/macruby/core/pointer_spec.rb 2010-04-20 23:14:49 UTC (rev 3946) @@ -170,3 +170,19 @@ lambda { pointer[3] = 42 }.should raise_error(ArgumentError) end end + +describe "A Pointer object" do + it "can have its type changed using #cast!" do + pointer = Pointer.new(NSRect.type) + pointer[0] = NSMakeRect(10, 20, 30, 40) + + val = NSValue.valueWithPointer(pointer) + pointer2 = val.pointerValue + pointer2.class.should == Pointer + pointer2.type == 'v' + + pointer2.cast!(NSRect.type).should == pointer2 + pointer2.type.should == NSRect.type + pointer2[0].should == NSMakeRect(10, 20, 30, 40) + end +end