spec/gorillib/model/serialization/tsv_spec.rb in gorillib-0.5.0 vs spec/gorillib/model/serialization/tsv_spec.rb in gorillib-0.5.2

- old
+ new

@@ -5,13 +5,29 @@ # require 'gorillib/model' require 'gorillib/builder' require 'gorillib/model/serialization/tsv' -describe Gorillib::Model, :model_spec, :builder_spec do +describe Gorillib::Model::LoadFromTsv, :model_spec, :builder_spec do context ".load_tsv" do - # it "respects blank characters at end of line, so '1\\t2\\t\\t\\t becomes [\"1\",\"2\",\"\",\"\",\"\"]" do - # # make sure - # end + + let(:expected_engine) do + {:name=>:Wankel, :carburetor=>:no, :volume=>1, :cylinders=>982, :owner=>"who_am_i"} + end + + before :each do + engine_class.class_eval { include Gorillib::Model::LoadFromTsv } + engine_class.should_receive(:_each_raw_line).with(:test, {}). + and_yield(expected_engine.values.join("\t")) + end + + it "loads from file" do + engine_class.load_tsv(:test).to_wire().first.keep_if{|k,| k != :_type}.should + eql(expected_engine) + end + + it "loads from file with block" do + expect { |b| engine_class.load_tsv(:test, &b) }.to yield_with_args(engine_class) + end end end