Sha256: 5c1c5a8064a5247173b7bfd2901f4beb21ca6f7f1ffcb3c560696a185e71daeb

Contents?: true

Size: 1.44 KB

Versions: 6

Compression:

Stored size: 1.44 KB

Contents

require File.join(File.dirname(__FILE__), '../test_helper')
require 'hammer_cli/csv_parser'

describe HammerCLI::CSVParser do

  describe 'parse' do
    let(:parser) { HammerCLI::CSVParser.new }

    it "parses nil" do
      _(parser.parse(nil)).must_equal []
    end

    it "parses empty string" do
      _(parser.parse('')).must_equal ['']
    end

    it "parses single value" do
      _(parser.parse('a')).must_equal ['a']
    end

    it "parses a dquoted string" do
      _(parser.parse('\"a')).must_equal ['"a']
    end

    it "parses a quoted string" do
      _(parser.parse("Mary\\'s")).must_equal ["Mary's"]
    end

    it "should parse a comma separated string" do
      _(parser.parse("a,b,c")).must_equal ['a', 'b', 'c']
    end

    it "parses a string with escaped comma" do
      _(parser.parse('a\,b,c')).must_equal ['a,b', 'c']
    end

    it "should parse a comma separated string with quotes" do
      _(parser.parse('a,b,\\"c\\"')).must_equal ['a', 'b', '"c"']
    end

    it "parses a comma separated string with values including comma" do
      _(parser.parse('a,b,"c,d"')).must_equal ['a', 'b', 'c,d']
    end

    it "parses a comma separated string with values including comma (dquotes)" do
      _(parser.parse("a,b,'c,d'")).must_equal ['a', 'b', 'c,d']
    end

    it "raises quoting error" do
      err = _{ parser.parse('1,"3,4""s') }.must_raise ArgumentError
      _(err.message).must_equal "Illegal quoting in \"3,4\"\"s"
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
hammer_cli-3.14.0 test/unit/csv_parser_test.rb
hammer_cli-3.13.0 test/unit/csv_parser_test.rb
hammer_cli-3.12.0 test/unit/csv_parser_test.rb
hammer_cli-3.10.0 test/unit/csv_parser_test.rb
hammer_cli-3.9.0 test/unit/csv_parser_test.rb
hammer_cli-3.8.0 test/unit/csv_parser_test.rb