Sha256: 0d794bef9954083e3b11bf886ad2e9480cde6ea02ebd89792bdcac9f66cf507c

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 KB

Contents

require 'spec_helper'

describe CSV::Table do

  let(:csv_data) {"id,firstname,lastname
1,One,One
2,Two,Two
4,Four,Four
5,Five,Five
6,One,One"}

  let(:csv) { CSV.parse(csv_data, {:col_sep => ',', :headers => true}) }

  it "should correct create one record" do
    csv.size.should eq(5)
    csv.create("id"=> '13', "lastname" => '1992')
    csv.size.should eq(6)
    csv[-1]["id"].should eql('13')
  end

  it "should correct select records" do
    csv.where('firstname' => 'One').size.should eql(2)
    csv.where('firstname' => 'One').where_not('id' => '6').size.should eql(1)
  end

  it "#not" do
    csv.not{where('firstname' => "One")}.size.should eql(3)
  end

  it "should select records with id greater than 2" do
    csv.gt('id', 2).size.should eq(3)
  end

  it "should select records with id greater than or equal to 2" do
    csv.ge('id', 2).size.should eq(4)
  end

  it "should select records with id less than 2" do
    csv.lt('id', 2).size.should eq(1)
  end

  it "should select records with id less than or equal to 2" do
    csv.le('id', 2).size.should eq(2)
  end

  it "should select records with firstname equal to 'Four'" do
    csv.eq('firstname', 'Four').size.should eq(1)
  end

  it "should select records with firstname not equal to 'Four'" do
    csv.ne('firstname', 'Four').size.should eq(4)
  end

  it "should correct delete records" do
    csv.size.should eql(5)
    csv.delete_all
    csv.size.should eql(0)
  end

  it "should correct delete records with selected group" do
    csv.size.should eql(5)
    csv.where('firstname' => 'One').delete_all
    csv.size.should eql(3)
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
smart_csv-0.0.9 spec/csv/table/table_spec.rb