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