1
require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
3
describe "Sequel::Dataset #set_defaults" do
5
@ds = Sequel.mock.dataset.from(:items).extension(:set_overrides).set_defaults(:x=>1)
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)"
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"
24
specify "should not affect String update arguments" do
25
@ds.update_sql('y = 2').should == "UPDATE items SET y = 2"
29
describe "Sequel::Dataset #set_overrides" do
31
@ds = Sequel.mock.dataset.from(:items).extension(:set_overrides).set_overrides(:x=>1)
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)"
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"