spec/dsl/optionals_spec.rb in remarkable-3.1.8 vs spec/dsl/optionals_spec.rb in remarkable-3.1.9
- old
+ new
@@ -1,237 +1,237 @@
-# encoding: utf-8
-require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
-
-describe Remarkable::DSL::Optionals do
-
- describe "without config blocks" do
-
- before(:each) do
- @matcher = Remarkable::Specs::Matchers::BeAPersonMatcher.new
- end
-
- describe "as optionals" do
- it "should allow optionals to be set" do
- @matcher.first_name('José')
- @matcher.options[:first_name].should == 'José'
-
- @matcher.last_name('Valim')
- @matcher.options[:last_name].should == 'Valim'
- end
-
- it "should allow defaults values" do
- @matcher.age
- @matcher.options[:age].should == 18
- end
-
- it "should allow alias to be set" do
- @matcher.family_name('Valim')
- @matcher.options[:last_name].should == 'Valim'
- end
-
- it "should allow multiple options to be given" do
- @matcher.bands(:incubus, :foo_fighters)
- @matcher.options[:bands].should == [:incubus, :foo_fighters]
- end
-
- it "should allow multiple options to be appended once at a time" do
- @matcher.bands(:incubus)
- @matcher.bands(:foo_fighters)
- @matcher.options[:bands].should == [:incubus, :foo_fighters]
- end
-
- it "should allow blocks to given to options" do
- @matcher.builder {|i| i + 10 }
- @matcher.options[:builder].call(10).should == 20
-
- @matcher.builder proc{|i| i + 20 }
- @matcher.options[:builder].call(10).should == 30
- end
- end
-
- describe "as optionals=" do
- it "should allow optionals to be set" do
- @matcher.first_name = 'José'
- @matcher.options[:first_name].should == 'José'
-
- @matcher.last_name = 'Valim'
- @matcher.options[:last_name].should == 'Valim'
- end
-
- it "should allow alias to be set" do
- @matcher.family_name = 'Valim'
- @matcher.options[:last_name].should == 'Valim'
- end
-
- it "should allow multiple options to be given" do
- @matcher.bands = [ :incubus, :foo_fighters ]
- @matcher.options[:bands].should == [ :incubus, :foo_fighters ]
- end
-
- it "should overwrite previous options" do
- @matcher.bands = [ :incubus ]
- @matcher.bands = [ :foo_fighters ]
- @matcher.options[:bands].should == [:foo_fighters]
- end
-
- it "should allow blocks to given to options" do
- @matcher.builder = proc{|i| i + 20 }
- @matcher.options[:builder].call(10).should == 30
- end
- end
-
- end
-
- describe "with config blocks" do
-
- def builder(*args, &block)
- Remarkable::Specs::Matchers::BeAPersonMatcher.new(*args, &block)
- end
-
- describe "as optionals" do
- it "should allow optionals to be set" do
- matcher = builder do |m|
- m.first_name 'José'
- m.last_name 'Valim'
- end
-
- matcher.options[:first_name].should == 'José'
- matcher.options[:last_name].should == 'Valim'
- end
-
- it "should allow defaults values" do
- matcher = builder do |m|
- m.age
- end
-
- matcher.options[:age].should == 18
- end
-
- it "should allow alias to be set" do
- matcher = builder do |m|
- m.family_name 'Valim'
- end
-
- matcher.options[:last_name].should == 'Valim'
- end
-
- it "should allow multiple options to be given" do
- matcher = builder do |m|
- m.bands(:incubus, :foo_fighters)
- end
-
- matcher.options[:bands].should == [:incubus, :foo_fighters]
- end
-
- it "should allow multiple options to be appended once at a time" do
- matcher = builder do |m|
- m.bands(:incubus)
- m.bands(:foo_fighters)
- end
-
- matcher.options[:bands].should == [:incubus, :foo_fighters]
- end
-
- it "should allow blocks to given to options" do
- matcher = builder do |m|
- m.builder {|i| i + 10 }
- end
-
- matcher.options[:builder].call(10).should == 20
-
- matcher = builder do |m|
- m.builder proc {|i| i + 20 }
- end
-
- matcher.options[:builder].call(10).should == 30
- end
- end
-
- describe "as optionals=" do
- it "should allow optionals to be set" do
- matcher = builder do |m|
- m.first_name = 'José'
- m.last_name = 'Valim'
- end
-
- matcher.options[:first_name].should == 'José'
- matcher.options[:last_name].should == 'Valim'
- end
-
- it "should allow alias to be set" do
- matcher = builder do |m|
- m.family_name = 'Valim'
- end
-
- matcher.options[:last_name].should == 'Valim'
- end
-
- it "should allow multiple options to be given" do
- matcher = builder do |m|
- m.bands = [ :incubus, :foo_fighters ]
- end
-
- matcher.options[:bands].should == [ :incubus, :foo_fighters ]
- end
-
- it "should overwrite previous options" do
- matcher = builder do |m|
- m.bands = [ :incubus ]
- m.bands = [ :foo_fighters ]
- end
-
- matcher.options[:bands].should == [ :foo_fighters ]
- end
-
- it "should allow blocks to given to options" do
- matcher = builder do |m|
- m.builder = proc {|i| i + 20 }
- end
-
- matcher.options[:builder].call(10).should == 30
- end
- end
-
- end
-
- describe "description" do
- it "should provide a description with optionals" do
- matcher = Remarkable::Specs::Matchers::SingleContainMatcher.new(1)
- matcher.description.should == 'contain 1 not checking for blank'
-
- matcher.allow_blank(10)
- matcher.description.should == 'contain 1 with blank equal 10'
-
- matcher.allow_blank(true)
- matcher.description.should == 'contain 1 with blank equal true'
-
- matcher.allow_nil(true)
- matcher.description.should == 'contain 1 allowing nil and with blank equal true'
-
- matcher.allow_nil(false)
- matcher.description.should == 'contain 1 not allowing nil and with blank equal true'
- end
-
- it "should provide a sentence interpolation option to optionals" do
- matcher = Remarkable::Specs::Matchers::SingleContainMatcher.new(1)
- matcher.values(1, 2, 3)
- matcher.description.should == 'contain 1 not checking for blank and values equal to 1, 2, and 3'
- end
-
- it "should inspect values in sentence interpolation options" do
- matcher = Remarkable::Specs::Matchers::SingleContainMatcher.new(1)
- matcher.values(:a, :b, :c)
- matcher.description.should == 'contain 1 not checking for blank and values equal to :a, :b, and :c'
- end
-
- it "should provide a description with optionals through namespace lookup" do
- matcher = Remarkable::Specs::Matchers::CollectionContainMatcher.new(1)
- matcher.description.should == 'contain 1'
-
- matcher.allow_nil(true)
- matcher.description.should == 'contain 1 allowing nil'
-
- matcher.allow_nil(false)
- matcher.description.should == 'contain 1 not allowing nil'
- end
- end
-end
+# encoding: utf-8
+require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
+
+describe Remarkable::DSL::Optionals do
+
+ describe "without config blocks" do
+
+ before(:each) do
+ @matcher = Remarkable::Specs::Matchers::BeAPersonMatcher.new
+ end
+
+ describe "as optionals" do
+ it "should allow optionals to be set" do
+ @matcher.first_name('José')
+ @matcher.options[:first_name].should == 'José'
+
+ @matcher.last_name('Valim')
+ @matcher.options[:last_name].should == 'Valim'
+ end
+
+ it "should allow defaults values" do
+ @matcher.age
+ @matcher.options[:age].should == 18
+ end
+
+ it "should allow alias to be set" do
+ @matcher.family_name('Valim')
+ @matcher.options[:last_name].should == 'Valim'
+ end
+
+ it "should allow multiple options to be given" do
+ @matcher.bands(:incubus, :foo_fighters)
+ @matcher.options[:bands].should == [:incubus, :foo_fighters]
+ end
+
+ it "should allow multiple options to be appended once at a time" do
+ @matcher.bands(:incubus)
+ @matcher.bands(:foo_fighters)
+ @matcher.options[:bands].should == [:incubus, :foo_fighters]
+ end
+
+ it "should allow blocks to given to options" do
+ @matcher.builder {|i| i + 10 }
+ @matcher.options[:builder].call(10).should == 20
+
+ @matcher.builder proc{|i| i + 20 }
+ @matcher.options[:builder].call(10).should == 30
+ end
+ end
+
+ describe "as optionals=" do
+ it "should allow optionals to be set" do
+ @matcher.first_name = 'José'
+ @matcher.options[:first_name].should == 'José'
+
+ @matcher.last_name = 'Valim'
+ @matcher.options[:last_name].should == 'Valim'
+ end
+
+ it "should allow alias to be set" do
+ @matcher.family_name = 'Valim'
+ @matcher.options[:last_name].should == 'Valim'
+ end
+
+ it "should allow multiple options to be given" do
+ @matcher.bands = [ :incubus, :foo_fighters ]
+ @matcher.options[:bands].should == [ :incubus, :foo_fighters ]
+ end
+
+ it "should overwrite previous options" do
+ @matcher.bands = [ :incubus ]
+ @matcher.bands = [ :foo_fighters ]
+ @matcher.options[:bands].should == [:foo_fighters]
+ end
+
+ it "should allow blocks to given to options" do
+ @matcher.builder = proc{|i| i + 20 }
+ @matcher.options[:builder].call(10).should == 30
+ end
+ end
+
+ end
+
+ describe "with config blocks" do
+
+ def builder(*args, &block)
+ Remarkable::Specs::Matchers::BeAPersonMatcher.new(*args, &block)
+ end
+
+ describe "as optionals" do
+ it "should allow optionals to be set" do
+ matcher = builder do |m|
+ m.first_name 'José'
+ m.last_name 'Valim'
+ end
+
+ matcher.options[:first_name].should == 'José'
+ matcher.options[:last_name].should == 'Valim'
+ end
+
+ it "should allow defaults values" do
+ matcher = builder do |m|
+ m.age
+ end
+
+ matcher.options[:age].should == 18
+ end
+
+ it "should allow alias to be set" do
+ matcher = builder do |m|
+ m.family_name 'Valim'
+ end
+
+ matcher.options[:last_name].should == 'Valim'
+ end
+
+ it "should allow multiple options to be given" do
+ matcher = builder do |m|
+ m.bands(:incubus, :foo_fighters)
+ end
+
+ matcher.options[:bands].should == [:incubus, :foo_fighters]
+ end
+
+ it "should allow multiple options to be appended once at a time" do
+ matcher = builder do |m|
+ m.bands(:incubus)
+ m.bands(:foo_fighters)
+ end
+
+ matcher.options[:bands].should == [:incubus, :foo_fighters]
+ end
+
+ it "should allow blocks to given to options" do
+ matcher = builder do |m|
+ m.builder {|i| i + 10 }
+ end
+
+ matcher.options[:builder].call(10).should == 20
+
+ matcher = builder do |m|
+ m.builder proc {|i| i + 20 }
+ end
+
+ matcher.options[:builder].call(10).should == 30
+ end
+ end
+
+ describe "as optionals=" do
+ it "should allow optionals to be set" do
+ matcher = builder do |m|
+ m.first_name = 'José'
+ m.last_name = 'Valim'
+ end
+
+ matcher.options[:first_name].should == 'José'
+ matcher.options[:last_name].should == 'Valim'
+ end
+
+ it "should allow alias to be set" do
+ matcher = builder do |m|
+ m.family_name = 'Valim'
+ end
+
+ matcher.options[:last_name].should == 'Valim'
+ end
+
+ it "should allow multiple options to be given" do
+ matcher = builder do |m|
+ m.bands = [ :incubus, :foo_fighters ]
+ end
+
+ matcher.options[:bands].should == [ :incubus, :foo_fighters ]
+ end
+
+ it "should overwrite previous options" do
+ matcher = builder do |m|
+ m.bands = [ :incubus ]
+ m.bands = [ :foo_fighters ]
+ end
+
+ matcher.options[:bands].should == [ :foo_fighters ]
+ end
+
+ it "should allow blocks to given to options" do
+ matcher = builder do |m|
+ m.builder = proc {|i| i + 20 }
+ end
+
+ matcher.options[:builder].call(10).should == 30
+ end
+ end
+
+ end
+
+ describe "description" do
+ it "should provide a description with optionals" do
+ matcher = Remarkable::Specs::Matchers::SingleContainMatcher.new(1)
+ matcher.description.should == 'contain 1 not checking for blank'
+
+ matcher.allow_blank(10)
+ matcher.description.should == 'contain 1 with blank equal 10'
+
+ matcher.allow_blank(true)
+ matcher.description.should == 'contain 1 with blank equal true'
+
+ matcher.allow_nil(true)
+ matcher.description.should == 'contain 1 allowing nil and with blank equal true'
+
+ matcher.allow_nil(false)
+ matcher.description.should == 'contain 1 not allowing nil and with blank equal true'
+ end
+
+ it "should provide a sentence interpolation option to optionals" do
+ matcher = Remarkable::Specs::Matchers::SingleContainMatcher.new(1)
+ matcher.values(1, 2, 3)
+ matcher.description.should == 'contain 1 not checking for blank and values equal to 1, 2, and 3'
+ end
+
+ it "should inspect values in sentence interpolation options" do
+ matcher = Remarkable::Specs::Matchers::SingleContainMatcher.new(1)
+ matcher.values(:a, :b, :c)
+ matcher.description.should == 'contain 1 not checking for blank and values equal to :a, :b, and :c'
+ end
+
+ it "should provide a description with optionals through namespace lookup" do
+ matcher = Remarkable::Specs::Matchers::CollectionContainMatcher.new(1)
+ matcher.description.should == 'contain 1'
+
+ matcher.allow_nil(true)
+ matcher.description.should == 'contain 1 allowing nil'
+
+ matcher.allow_nil(false)
+ matcher.description.should == 'contain 1 not allowing nil'
+ end
+ end
+end