spec/lib/extensions/hash_spec.rb in picky-0.1.0 vs spec/lib/extensions/hash_spec.rb in picky-0.2.0
- old
+ new
@@ -2,10 +2,45 @@
describe Hash do
describe 'dump_to' do
it 'should description' do
-
+ # TODO
+ end
+ end
+
+ describe "to_json" do
+ before(:each) do
+ # A very realistic example.
+ #
+ @obj = { :allocations => [
+ ['c', 17.53, 275179, [["name","s*","s"]],[]],
+ ['c', 15.01, 164576, [["category","s*","s"]],[]],
+ ['p', 12.94, 415634, [["street","s*","s"]],[]],
+ ['p', 12.89, 398247, [["name","s*","s"]],[]],
+ ['p', 12.67, 318912, [["city","s*","s"]],[]],
+ ['p', 12.37, 235933, [["first_name","s*","s"]],[]],
+ ["p", 11.76, 128259, [["maiden_name","s*","s"]],[]],
+ ['p', 11.73, 124479, [["occupation","s*","s"]],[]],
+ ['c', 11.35, 84807, [["street","s*","s"]],[]],
+ ['c', 11.15, 69301, [["city","s*","s"]],[]],
+ ['p', 4.34, 77, [["street_number","s*","s"]],[]],
+ ['c', 2.08, 8, [["street_number","s*","s"]],[]],
+ ['c', 1.61, 5, [["adword","s*","s"]],[]]
+ ],
+ :offset => 0,
+ :duration => 0.04,
+ :total => 2215417
+ }
+ end
+ it "should be correct" do
+ @obj.to_json.should == '{"allocations":[["c",17.53,275179,[["name","s*","s"]],[]],["c",15.01,164576,[["category","s*","s"]],[]],["p",12.94,415634,[["street","s*","s"]],[]],["p",12.89,398247,[["name","s*","s"]],[]],["p",12.67,318912,[["city","s*","s"]],[]],["p",12.37,235933,[["first_name","s*","s"]],[]],["p",11.76,128259,[["maiden_name","s*","s"]],[]],["p",11.73,124479,[["occupation","s*","s"]],[]],["c",11.35,84807,[["street","s*","s"]],[]],["c",11.15,69301,[["city","s*","s"]],[]],["p",4.34,77,[["street_number","s*","s"]],[]],["c",2.08,8,[["street_number","s*","s"]],[]],["c",1.61,5,[["adword","s*","s"]],[]]],"offset":0,"duration":0.04,"total":2215417}'
+ end
+ it "should take options" do
+ lambda { @obj.to_json(:some => :option) }.should_not raise_error
+ end
+ it "should be fast" do
+ Benchmark.realtime { @obj.to_json }.should < 0.00006
end
end
end
\ No newline at end of file