Sha256: 4a32834312270cd1cc94c019b91937a9e76c0a854201cb442d20b470f874044b
Contents?: true
Size: 1.96 KB
Versions: 2
Compression:
Stored size: 1.96 KB
Contents
require 'spec_helper' describe ACH::Record::Dynamic do before(:all) do @valid_record_definition = lambda do Class.new(ACH::Record::Dynamic) do record_name record_id '345' field_one '->1' field_two '->2', 34 field_three '->3' => 45 end end end before(:each) do module ACH::Formatter # redefining RULES FOR new test values remove_const(:OLD_RULES) if defined? OLD_RULES OLD_RULES = remove_const(:RULES) RULES = { :record_id => '->5', :record_name => '<-10' } end end after(:each) do module ACH::Formatter remove_const(:RULES) RULES = OLD_RULES end end it "should should not raise error on valid record definition" do expect(&@valid_record_definition).to_not raise_error end it "should add new rules to a formatter" do @valid_record_definition.call ACH::Formatter::RULES.keys.should include(:field_one, :field_two, :field_three) end it "should add declared fields to a record" do klass = @valid_record_definition.call klass.fields.should == [:record_name, :record_id, :field_one, :field_two, :field_three] end it "should assign default values to a record" do klass = @valid_record_definition.call expected_defaults = { :record_id => '345', :field_two => 34, :field_three => 45 } klass.defaults.should == expected_defaults end it "should raise error when redefining new rule" do [['->5'], ['->5', '123'], [{'->5' => '123'}]].each do |args| expect do Class.new(ACH::Record::Dynamic) do record_name *args end end.to raise_error(ACH::Record::Dynamic::DuplicateFormatError) end end it "should raise error when declaring unknown field without specifying a format" do expect do Class.new(ACH::Record::Dynamic) do field_four end end.to raise_error(ACH::Record::Dynamic::UndefinedFormatError) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ach_builder-0.2.2 | spec/record/dynamic_spec.rb |
ach_builder-0.2.1 | spec/record/dynamic_spec.rb |