~ubuntu-branches/ubuntu/vivid/ruby-sequel/vivid

« back to all changes in this revision

Viewing changes to spec/extensions/set_overrides_spec.rb

  • Committer: Package Import Robot
  • Author(s): Dmitry Borodaenko, Dmitry Borodaenko, Cédric Boutillier
  • Date: 2013-08-10 18:38:17 UTC
  • mfrom: (1.1.8)
  • Revision ID: package-import@ubuntu.com-20130810183817-iqanz804j32i5myi
Tags: 4.1.1-1
[ Dmitry Borodaenko ]
* New upstream release.
* Standards-Version upgraded to 3.9.4 (no changes).
* Added Build-Depend on ruby-sqlite3.

[ Cédric Boutillier ]
* debian/control: remove obsolete DM-Upload-Allowed flag.
* use canonical URI in Vcs-* fields.
* debian/copyright: use DEP5 copyright-format/1.0 official URL for Format
  field.
* Update debian/watch. Thanks Bart Martens.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
 
2
 
 
3
describe "Sequel::Dataset #set_defaults" do
 
4
  before do
 
5
    @ds = Sequel.mock.dataset.from(:items).extension(:set_overrides).set_defaults(:x=>1)
 
6
  end
 
7
 
 
8
  specify "should set the default values for inserts" do
 
9
    @ds.insert_sql.should == "INSERT INTO items (x) VALUES (1)"
 
10
    @ds.insert_sql(:x=>2).should == "INSERT INTO items (x) VALUES (2)"
 
11
    @ds.insert_sql(:y=>2).should =~ /INSERT INTO items \([xy], [xy]\) VALUES \([21], [21]\)/
 
12
    @ds.set_defaults(:y=>2).insert_sql.should =~ /INSERT INTO items \([xy], [xy]\) VALUES \([21], [21]\)/
 
13
    @ds.set_defaults(:x=>2).insert_sql.should == "INSERT INTO items (x) VALUES (2)"
 
14
  end
 
15
 
 
16
  specify "should set the default values for updates" do
 
17
    @ds.update_sql.should == "UPDATE items SET x = 1"
 
18
    @ds.update_sql(:x=>2).should == "UPDATE items SET x = 2"
 
19
    @ds.update_sql(:y=>2).should =~ /UPDATE items SET (x = 1|y = 2), (x = 1|y = 2)/
 
20
    @ds.set_defaults(:y=>2).update_sql.should =~ /UPDATE items SET (x = 1|y = 2), (x = 1|y = 2)/
 
21
    @ds.set_defaults(:x=>2).update_sql.should == "UPDATE items SET x = 2"
 
22
  end
 
23
 
 
24
  specify "should not affect String update arguments" do
 
25
    @ds.update_sql('y = 2').should == "UPDATE items SET y = 2"
 
26
  end
 
27
end
 
28
 
 
29
describe "Sequel::Dataset #set_overrides" do
 
30
  before do
 
31
    @ds = Sequel.mock.dataset.from(:items).extension(:set_overrides).set_overrides(:x=>1)
 
32
  end
 
33
 
 
34
  specify "should override the given values for inserts" do
 
35
    @ds.insert_sql.should == "INSERT INTO items (x) VALUES (1)"
 
36
    @ds.insert_sql(:x=>2).should == "INSERT INTO items (x) VALUES (1)"
 
37
    @ds.insert_sql(:y=>2).should =~ /INSERT INTO items \([xy], [xy]\) VALUES \([21], [21]\)/
 
38
    @ds.set_overrides(:y=>2).insert_sql.should =~ /INSERT INTO items \([xy], [xy]\) VALUES \([21], [21]\)/
 
39
    @ds.set_overrides(:x=>2).insert_sql.should == "INSERT INTO items (x) VALUES (1)"
 
40
  end
 
41
 
 
42
  specify "should override the given values for updates" do
 
43
    @ds.update_sql.should == "UPDATE items SET x = 1"
 
44
    @ds.update_sql(:x=>2).should == "UPDATE items SET x = 1"
 
45
    @ds.update_sql(:y=>2).should =~ /UPDATE items SET (x = 1|y = 2), (x = 1|y = 2)/
 
46
    @ds.set_overrides(:y=>2).update_sql.should =~ /UPDATE items SET (x = 1|y = 2), (x = 1|y = 2)/
 
47
    @ds.set_overrides(:x=>2).update_sql.should == "UPDATE items SET x = 1"
 
48
  end
 
49
end