Sha256: a7088b275766dfdc91a43fdcb6f7ba1dbd9e15bccec448e95d9fdc6bc6513cd5
Contents?: true
Size: 1.92 KB
Versions: 1
Compression:
Stored size: 1.92 KB
Contents
require 'spec_helper' describe BikePOA::Helpers::ForceField do describe 'enforcer installation' do before :each do module BikePOA::Helpers::ForceField::Enforcers def self.force_something(value) "#{value}, forced" end end class DummySubject < Hashie::Dash include BikePOA::Helpers::ForceField property :forced force_something :forced end end context 'when setting property directly' do let(:dummy) { DummySubject.new } it 'applies the enforcer' do dummy.forced = 'a value' dummy.forced.should == 'a value, forced' end end context 'when creating the object from a hash' do let(:dummy) { DummySubject.new(forced: 'a value') } it 'forces the value to become something else' do dummy = DummySubject.new(forced: 'a value') dummy.forced.should == 'a value, forced' end end end describe :Enforcers do let(:mod) { BikePOA::Helpers::ForceField::Enforcers } describe :force_utf8 do it 'encodes a iso-8859-1 value to utf-8' do mod.force_utf8("Jo\xE3o da Silva").bytes.to_a.should == "Jo\xC3\xA3o da Silva".bytes.to_a end it 'does not try to over-convert an utf-8 value' do mod.force_utf8("Jo\xC3\xA3o da Silva").bytes.to_a.should == "Jo\xC3\xA3o da Silva".bytes.to_a end end describe 'force integer' do it "accepts any value that is castable to integer" do expect { mod.force_integer('42') }.to_not raise_error(ArgumentError) expect { mod.force_integer(42) }.to_not raise_error(ArgumentError) expect { mod.force_integer(42.0) }.to_not raise_error(ArgumentError) end it "raises when the value is not castable to integer" do expect { mod.force_integer("abc") }.to raise_error(ArgumentError) expect { mod.force_integer("a12") }.to raise_error(ArgumentError) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bikepoa-tools-0.4.0 | spec/helpers_spec.rb |