spec/player_spec.rb in sanichi-chess_icu-0.4.2 vs spec/player_spec.rb in sanichi-chess_icu-0.4.3

- old
+ new

@@ -234,9 +234,28 @@ it "cannot be done with unequal objects" do lambda { @p1.merge(@p3) }.should raise_error(/cannot merge.*not equal/) end end + context "renumber the player numbers" do + before(:each) do + @p = Player.new('Mark', 'Orr', 10) + @p.add_result(Result.new(1, 10, 'W', :opponent => 20)) + @p.add_result(Result.new(2, 10, 'W', :opponent => 30)) + end + + it "should renumber successfully if the map has the relevant player numbers" do + map = { 10 => 1, 20 => 2, 30 => 3 } + @p.renumber!(map).num.should == 1 + @p.results.map{ |r| r.opponent }.sort.join('').should == '23' + end + + it "should raise exception if a player number is not in the map" do + lambda { @p.renumber!({ 100 => 1, 20 => 2, 30 => 3 }) }.should raise_error(/player.*10.*not found/) + lambda { @p.renumber!({ 10 => 1, 200 => 2, 30 => 3 }) }.should raise_error(/opponent.*20.*not found/) + end + end + context "loose equality" do before(:all) do @mark1 = Player.new('Mark', 'Orr', 1) @mark2 = Player.new('Mark', 'Orr', 2, :fed => 'IRL') @mark3 = Player.new('Mark', 'Orr', 3, :fed => 'USA') \ No newline at end of file