spec/ruby-measurement/unit_spec.rb in ruby-measurement-1.2.0 vs spec/ruby-measurement/unit_spec.rb in ruby-measurement-1.2.1

- old
+ new

@@ -115,6 +115,49 @@ it 'returns false' do (subject == :hour).should be_false end end end + + describe '.names' do + subject { Measurement::Unit } + + it 'returns all defined unit names' do + unit_names = subject.names + unit_names.should be_kind_of Array + unit_names.should include 'count' + end + end + + describe '.define' do + subject { Measurement::Unit } + + it 'returns a unit builder' do + builder = subject.define(:count) + builder.should be_a Measurement::Unit::Builder + end + + it 'accepts a block' do + builder = subject.define(:count) { |b| b.alias :ct } + builder.should be_a Measurement::Unit::Builder + end + end + + describe '.[]' do + subject { Measurement::Unit } + + describe 'for a unit name that is defined' do + it 'returns the unit' do + unit = subject[:dozen] + unit.should be_a Measurement::Unit + unit.name.should eq 'doz' + unit.aliases.should eq %w(doz dozen).to_set + end + end + + describe 'for a unit name that is not defined' do + it 'returns nil' do + subject[:potato].should be_nil + end + end + end end