Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- it "should validate the uniqueness of a column" do
- class User < Sequel::Model
- validations.clear
- validates do
- uniqueness_of :username
- end
- end
- User.dataset.extend(Module.new {
- def fetch_rows(sql)
- @db << sql
- if sql == "SELECT * FROM users WHERE (username = 'willy') LIMIT 1" then
- yield({:id => 1, :username => "willy", :password => "test"})
- end
- end
- })
- @user = User.new(:username => "willy", :password => "anothertest")
- @user.should_not be_valid
- @user.errors.full_messages.should == ['username is already taken']
- @user.username = "pinky"
- @user.should be_valid
- end
- it "should not fail when trying to update a record when the unique value hasn't changed" do
- class User < Sequel::Model
- validations.clear
- validates do
- uniqueness_of :username
- end
- end
- User.dataset.extend(Module.new {
- def fetch_rows(sql)
- @db << sql
- yield({:id => 1, :username => "willy", :password => "test"})
- end
- })
- user = User[1]
- user.should be_valid
- end
Add Comment
Please, Sign In to add comment