From e0d3ceb08f35b60558fee3e418b0be83f451ccb5 Mon Sep 17 00:00:00 2001 From: Marcos Tapajos Date: Sun, 2 Oct 2011 02:41:06 -0300 Subject: [PATCH] Specs for Enumerable#one? --- core/enumerable/one_spec.rb | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/core/enumerable/one_spec.rb b/core/enumerable/one_spec.rb index e8caea42ed..4c13a6845a 100644 --- a/core/enumerable/one_spec.rb +++ b/core/enumerable/one_spec.rb @@ -1,5 +1,29 @@ require File.expand_path('../../../spec_helper', __FILE__) describe "Enumerable#one?" do - it "needs to be reviewed for spec completeness" + ruby_version_is '1.8.7' do + describe "when block is given" do + it "returns true if block returns true once" do + ["ant", "bear", "cat"].one?{ |word| word.length == 4 }.should be_true + end + + it "returns false if block evaluation are true more than once" do + ["ant", "bear"].one? { |word| word.length > 4 }.should be_false + end + end + + describe "when block isn't given" do + it "returns true if only one element is true" do + [false, nil, true].one?.should be_true + end + + it "returns false if two elements are true" do + [false, true, nil, true].one?.should be_false + end + + it "returns false if two elements aren't false or nil" do + [false, true, nil, 99].one?.should be_false + end + end + end end