spec/lib/hotcell/manipulator_spec.rb in hotcell-0.1.0 vs spec/lib/hotcell/manipulator_spec.rb in hotcell-0.2.0

- old
+ new

@@ -4,39 +4,44 @@ context 'mixed in' do context do let(:klass) do Class.new(Numeric) do include Hotcell::Manipulator::Mixin + + def foo; end end end subject { klass.new } its(:manipulator_methods) { should be_a Set } its(:manipulator_methods) { should be_empty } its(:to_manipulator) { should === subject } - specify { subject.manipulator_invoke('round').should be_nil } - specify { subject.manipulator_invoke(:round).should be_nil } - specify { subject.manipulator_invoke('round', 42, :arg).should be_nil } + specify { subject.manipulator_invoke('foo').should be_nil } + specify { subject.manipulator_invoke(:foo).should be_nil } + specify { subject.manipulator_invoke('foo', 42, :arg).should be_nil } end context do let(:klass) do Class.new(String) do include Hotcell::Manipulator::Mixin - manipulator :split, :size + manipulate :foo, :bar + + alias_method :foo, :split + alias_method :bar, :size end end subject { klass.new('hello world') } - its('manipulator_methods.to_a') { should =~ %w(split size) } its(:to_manipulator) { should === subject } - specify { subject.manipulator_invoke('length').should be_nil } - specify { subject.manipulator_invoke('length', 42, :arg).should be_nil } - specify { subject.manipulator_invoke(:split).should be_nil } - specify { subject.manipulator_invoke('split').should == %w(hello world) } - specify { subject.manipulator_invoke('size').should == 11 } - specify { expect { subject.manipulator_invoke('size', 42) }.to raise_error ArgumentError } + specify { (subject.manipulator_methods.to_a & %w(foo bar)).should =~ %w(foo bar) } + specify { subject.manipulator_invoke('baz').should be_nil } + specify { subject.manipulator_invoke('baz', 42, :arg).should be_nil } + specify { subject.manipulator_invoke(:foo).should be_nil } + specify { subject.manipulator_invoke('foo').should == %w(hello world) } + specify { subject.manipulator_invoke('bar').should == 11 } + specify { expect { subject.manipulator_invoke('bar', 42) }.to raise_error ArgumentError } end end context 'inherited' do let(:klass) do