File: generate_spec.rb

package info (click to toggle)
jruby 1.7.26-1%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 84,572 kB
  • sloc: ruby: 669,910; java: 253,056; xml: 35,152; ansic: 9,187; yacc: 7,267; cpp: 5,244; sh: 1,036; makefile: 345; jsp: 48; tcl: 40
file content (74 lines) | stat: -rw-r--r-- 1,781 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
require File.expand_path('../../../spec_helper', __FILE__)
require 'csv'
require 'tempfile'

describe "CSV.generate" do

  ruby_version_is "" ... "1.9" do
    before :each do
      @outfile_name = tmp("generate_test_#{$$}.csv")
    end

    it "creates a BasicWriter" do
      writer = CSV::generate(@outfile_name)
      writer.should be_kind_of(CSV::BasicWriter)
      writer.close
    end

    it "accepts a field separator" do
      writer = CSV::generate(@outfile_name, ",")
      writer.should be_kind_of(CSV::BasicWriter)
      writer.close
    end

    it "accepts a row separator" do
      writer = CSV::generate(@outfile_name, ".")
      writer.should be_kind_of(CSV::BasicWriter)
      writer.close
    end

    it "creates a BasicWriter to use in a block" do
      CSV::generate(@outfile_name) do |writer|
	writer.should be_kind_of(CSV::BasicWriter)
      end
    end

    it "creates a BasicWriter with ; as the separator inside the block" do
      CSV::generate(@outfile_name, ?;) do |writer|
	writer.should be_kind_of(CSV::BasicWriter)
      end
    end

    after :each do
      rm_r @outfile_name
    end
  end

  ruby_version_is "1.9" do
    it "returns CSV string" do
      csv_str = CSV.generate do |csv|
	csv.add_row [1, 2, 3]
	csv << [4, 5, 6]
      end
      csv_str.should == "1,2,3\n4,5,6\n"
    end

    it "accepts a col separator" do
      csv_str = CSV.generate(:col_sep => ";") do |csv|
	csv.add_row [1, 2, 3]
	csv << [4, 5, 6]
      end
      csv_str.should == "1;2;3\n4;5;6\n"
    end

    it "appends and returns the argument itself" do
      str = ""
      csv_str = CSV.generate(str) do |csv|
	csv.add_row [1, 2, 3]
	csv << [4, 5, 6]
      end
      csv_str.object_id.should == str.object_id
      str.should == "1,2,3\n4,5,6\n"
    end
  end
end