Sha256: 76b331ed5395c7ea56a48cefaa1e9031c548ba9eb28c4a2328a97fe52e04f158

Contents?: true

Size: 1.74 KB

Versions: 8

Compression:

Stored size: 1.74 KB

Contents

require 'spec_helper'
require 'csv'

describe 'csv' do  

  after(:each) do
    SpecSeeds.setup_csv
  end

  it "can read data (simple)" do
    plan = SpecPlan.new
    @rows = []

    plan.do! {
      source = plan.connections[:csv][:forklift_test_source]
      source.read {|data| 
        @rows = (@rows + data)
      }
    }

    expect(@rows.length).to eql 5
    expect(@rows.first[:vendor_id]).to eql 1
    expect(@rows.last[:vendor_id]).to eql 5
  end

  it "can read partial data" do
    plan = SpecPlan.new
    @rows = []

    plan.do! {
      source = plan.connections[:csv][:forklift_test_source]
      @rows = source.read(3)
    }

    expect(@rows.length).to eql 3
    expect(@rows.first[:vendor_id]).to eql 1
    expect(@rows.last[:vendor_id]).to eql 3
  end

  it "can write data (simple)" do
    plan = SpecPlan.new
    data = [
      {:thing => 1, :when => Time.now},
      {:thing => 2, :when => Time.now},
    ]

    plan.do! {
      destination = plan.connections[:csv][:forklift_test_destination]
      destination.write(data)
    }

    @rows = SpecClient.csv('/tmp/destination.csv')
    expect(@rows.length).to eql 2
    expect(@rows.first[:thing]).to eql 1
    expect(@rows.last[:thing]).to eql 2
  end

  it "can append data" do
    plan = SpecPlan.new

    plan.do! {
      destination = plan.connections[:csv][:forklift_test_destination]

      data = [
        {:thing => 1, :when => Time.now},
        {:thing => 2, :when => Time.now},
      ]

      destination.write(data)

      data = [
        {:thing => 3, :when => Time.now},
      ]

      destination.write(data)
    }

    @rows = SpecClient.csv('/tmp/destination.csv')
    expect(@rows.length).to eql 3
    expect(@rows.first[:thing]).to eql 1
    expect(@rows.last[:thing]).to eql 3
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
forklift_etl-1.1.0 spec/integration/csv_spec.rb
forklift_etl-1.0.19 spec/integration/csv_spec.rb
forklift_etl-1.0.18 spec/integration/csv_spec.rb
forklift_etl-1.0.17 spec/integration/csv_spec.rb
forklift_etl-1.0.16 spec/integration/csv_spec.rb
forklift_etl-1.0.15 spec/integration/csv_spec.rb
forklift_etl-1.0.14 spec/integration/csv_spec.rb
forklift_etl-1.0.12 spec/integration/csv_spec.rb