Sha256: 540a468bea07c5bdf52e11d6c2f771e5f6e38265ba60fd416136c78d1fe4eddd

Contents?: true

Size: 1.86 KB

Versions: 1

Compression:

Stored size: 1.86 KB

Contents

# frozen_string_literal: true

require_relative '../../../test_helper'

describe DocParser::YAMLOutput do
  it 'must create a file' do
    Dir.mktmpdir do |dir|
      filename = File.join(dir, 'test.yml')
      DocParser::YAMLOutput.new(filename: filename)
      File.exist?(filename).must_equal true
    end
  end

  it 'must save the header' do
    Dir.mktmpdir do |dir|
      filename = File.join(dir, 'test.yml')
      output = DocParser::YAMLOutput.new(filename: filename)
      output.header = 'test', 'the', 'header'
      output.close
      open(filename).read.must_equal ''
    end
  end

  it 'must have a header' do
    Dir.mktmpdir do |dir|
      filename = File.join(dir, 'test.yml')
      output = DocParser::YAMLOutput.new(filename: filename)
      lambda do
        output.add_row %w[aap noot mies]
      end.must_raise(DocParser::MissingHeaderException)
    end
  end

  it 'must save some rows' do
    Dir.mktmpdir do |dir|
      filename = File.join(dir, 'test.csv')
      output = DocParser::YAMLOutput.new(filename: filename)
      output.header = 'test', 'the', 'header'
      output.add_row %w[a b c]
      output.add_row %w[aap noot mies"]
      output.add_row %w[aap noot] # testing empty column
      output.close
      open(filename).read.must_equal <<~YAMLEND
        ---
        test: a
        the: b
        header: c
        ---
        test: aap
        the: noot
        header: mies\"
        ---
        test: aap
        the: noot
        header: ''
      YAMLEND
    end
  end

  it 'must give the correct rowcount' do
    Dir.mktmpdir do |dir|
      filename = File.join(dir, 'test.yml')
      output = DocParser::YAMLOutput.new(filename: filename)
      output.header = 'test', 'the', 'header'
      output.rowcount.must_equal 0
      output.add_row %w[aap noot mies]
      output.add_row %w[aap noot mies]
      output.rowcount.must_equal 2
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
docparser-0.3.0 test/lib/docparser/output/yaml_output_test.rb