Sha256: 8448a6039d877e7a2b3c1fe9da47a4cb5afcddfb236fa0aa1333ad459623578e
Contents?: true
Size: 1.25 KB
Versions: 3
Compression:
Stored size: 1.25 KB
Contents
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') class ClassyEnumBase < ClassyEnum::Base end class ClassyEnumBase::One < ClassyEnumBase end class ClassyEnumBase::Two < ClassyEnumBase end describe ClassyEnum::Base do context '.build' do context 'invalid option' do it 'should return the option' do ClassyEnumBase.build(:invalid_option).should == :invalid_option end end context 'string option' do subject { ClassyEnumBase.build("one") } it { should be_a(ClassyEnumBase::One) } end context 'symbol option' do subject { ClassyEnumBase.build(:two) } it { should be_a(ClassyEnumBase::Two) } end end context '#new' do subject { ClassyEnumBase::One } its(:new) { should be_a(ClassyEnumBase::One) } its(:new) { should == ClassyEnumBase::One.new } end context 'Subclass naming' do it 'should raise an error when invalid' do lambda { class WrongSublcassName < ClassyEnumBase; end }.should raise_error(ClassyEnum::SubclassNameError) end end end describe ClassyEnum::Base, 'Arel visitor' do specify do Arel::Visitors::ToSql.instance_methods.map(&:to_sym).should include(:'visit_ClassyEnumBase_One', :'visit_ClassyEnumBase_Two') end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
classy_enum-3.1.0 | spec/classy_enum/base_spec.rb |
classy_enum-3.0.1 | spec/classy_enum/base_spec.rb |
classy_enum-3.0.0 | spec/classy_enum/base_spec.rb |