spec/csv/table/table_spec.rb in smart_csv-0.0.7 vs spec/csv/table/table_spec.rb in smart_csv-0.0.9

- old
+ new

@@ -1,57 +1,66 @@ -require 'smart_csv' +require 'spec_helper' describe CSV::Table do - let(:csv_data) {"id,firstname,lastname\n1,One,One\n2,Two,Two\n4,Four,Four\n5,Five,Five\n6,One,One"} + let(:csv_data) {"id,firstname,lastname +1,One,One +2,Two,Two +4,Four,Four +5,Five,Five +6,One,One"} - let(:parse_data) { CSV.parse(csv_data, {:col_sep => ',', :headers => true}) } + let(:csv) { CSV.parse(csv_data, {:col_sep => ',', :headers => true}) } it "should correct create one record" do - parse_data.size.should eq(5) - parse_data.create("id"=> '13', "lastname" => '1992') - parse_data.size.should eq(6) - parse_data[-1]["id"].should eql('13') + 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 - parse_data.where('firstname' => 'One').size.should eql(2) - parse_data.where('firstname' => 'One').where_not('id' => '6').size.should eql(1) + 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 - parse_data.gt('id', 2).size.should eq(3) + csv.gt('id', 2).size.should eq(3) end it "should select records with id greater than or equal to 2" do - parse_data.ge('id', 2).size.should eq(4) + csv.ge('id', 2).size.should eq(4) end it "should select records with id less than 2" do - parse_data.lt('id', 2).size.should eq(1) + csv.lt('id', 2).size.should eq(1) end it "should select records with id less than or equal to 2" do - parse_data.le('id', 2).size.should eq(2) + csv.le('id', 2).size.should eq(2) end it "should select records with firstname equal to 'Four'" do - parse_data.eq('firstname', 'Four').size.should eq(1) + csv.eq('firstname', 'Four').size.should eq(1) end it "should select records with firstname not equal to 'Four'" do - parse_data.ne('firstname', 'Four').size.should eq(4) + csv.ne('firstname', 'Four').size.should eq(4) end it "should correct delete records" do - parse_data.size.should eql(5) - parse_data.delete_all - parse_data.size.should eql(0) + csv.size.should eql(5) + csv.delete_all + csv.size.should eql(0) end it "should correct delete records with selected group" do - parse_data.size.should eql(5) - parse_data.where('firstname' => 'One').delete_all - parse_data.size.should eql(3) + csv.size.should eql(5) + csv.where('firstname' => 'One').delete_all + csv.size.should eql(3) end end