Sha256: 7f3105cfc4b0a3bab1cc29d95af8f06ce78bb02eba3de63bab09934e9d7c40c4
Contents?: true
Size: 1.75 KB
Versions: 2
Compression:
Stored size: 1.75 KB
Contents
require 'test/unit' require 'active_support/test_case' require 'cbuilder' class CbuilderTest < ActiveSupport::TestCase @@orders = [ Struct.new(:number, :name).new(1138, 'Joe Schmo'), Struct.new(:number, :name).new(6875309, 'Nate Berkopec') ] test "single column" do csv = Cbuilder.encode do |csv| csv.set_collection!(@@orders) do |order| csv.col 'Order Number', order.number end end assert_equal ["Order Number"], CSV.parse(csv)[0] assert_equal ["1138"], CSV.parse(csv)[1] end test "single col with nil value" do csv = Cbuilder.encode do |csv| csv.set_collection!(@@orders) do |order| csv.col 'Order Number', nil end end assert CSV.parse(csv)[0] == ["Order Number"] assert_equal [], CSV.parse(csv)[1] end test "multiple cols" do csv = Cbuilder.encode do |csv| csv.set_collection!(@@orders) do |order| csv.col "Order Number", order.number csv.col "Name", order.name end end CSV.parse(csv).tap do |parsed| assert_equal ["1138", "Joe Schmo"], parsed[1] assert_equal ["6875309", "Nate Berkopec"], parsed[2] end end test "protects commas" do orders = [Struct.new(:number, :name).new(1138, 'Joe, Schmo')] csv = Cbuilder.encode do |csv| csv.set_collection!(orders) do |order| csv.col "Name", order.name end end assert_equal ["Joe, Schmo"], CSV.parse(csv)[1] end test "escaping quotes" do orders = [Struct.new(:number, :name).new(1138, %{"Joe Schmo"})] csv = Cbuilder.encode do |csv| csv.set_collection!(orders) do |order| csv.col "Name", order.name end end assert_equal [%{"Joe Schmo"}], CSV.parse(csv)[1] end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cbuilder-0.0.2 | test/cbuilder_test.rb |
cbuilder-0.0.1 | test/cbuilder_test.rb |