spec/tests/DSL.rb in Checked-3.2.0 vs spec/tests/DSL.rb in Checked-3.3.0

- old
+ new

@@ -33,9 +33,79 @@ .message.should == "Symbol, :a, must be a hash." end end # === describe array! check! +describe "Size!" do + + behaves_like :racked_dsl + + it 'raises ArgumentError if size of array is not within range' do + target = [:a, :b, :c] + r = 1..2 + lambda { Size!(target, r) } + .should.raise(ArgumentError) + .message.should == "Array, #{target.inspect}, can only contain #{r.to_a.join ' or '} items." + end + + it 'raises ArgumentError if size is not a Fixnum or Range' do + lambda { Size!([], [0]) } + .should.raise(ArgumentError) + .message.should == "Wrong class for size: #{[0].inspect}" + end + + it 'raises ArgumentError if missing size' do + lambda { Size!([:a, :b, :c]) } + .should.raise(ArgumentError) + end + + it 'returns array' do + t = [:a, :b] + Size!( t, 1..2).object_id.should == t.object_id + end + +end # === describe Sizes_0_1! + +describe "get_or_set :@var" do + + behaves_like :racked_dsl + + it 'raises ArgumentError if instance variable has not been initialized.' do + lambda { get_or_set :@something } + .should.raise(ArgumentError) + .message.should.match %r!@something has not been defined! + end + + it 'gets instance variable if array is empty.' do + @server = :hi + get_or_set( :@server ).should == @server + end + +end # === describe get_or_set + +describe "get_or_set :@var, var" do + + behaves_like :racked_dsl + + it 'raises ArgumentError if instance variable has not been initialized.' do + lambda { get_or_set :@someg, :hi} + .should.raise(ArgumentError) + .message.should.match %r!@someg has not been defined! + end + + it 'sets instance variable.' do + @server = :hi + get_or_set( :@server, :bye) + @server.should == :bye + end + + it 'returns last value' do + @server = :hi + get_or_set( :@server, :bye ).should == :bye + end + +end # === describe get_or_set + describe "string! " do behaves_like :ruby_dsl it 'returns the string' do