I am testing an update via assert_equal and it does not seem to work.
I have this fixture:
bob1:
id: 1000001
login: bob
glogin: bob@mcbob.com
session_token: 77a38
Here is my test method:
class Guser < ActiveRecord::Base
def self.update_token(glogin, login, stoken)
u=find(:first, :conditions=>["glogin = ? AND login = ?", glogin, login])
return nil if u.nil?
if u.session_token != stoken
u.session_token = stoken
u.save
return u
end
#nil
end
end
Here is where I call the method, where I match the 'glogin' and 'login'
column values and if they match I want to update the session token.
require File.dirname(__FILE__) + '/../test_helper'
class GuserTest < ActiveSupport::TestCase
self.use_instantiated_fixtures = true
fixtures :users
def test_match_login
assert_equal @bob1, Guser.update_token("bob@mcbob.com", "bob",
"77a38")
end
The first time even if there is no record in the database it inserts and
gives a success message:
1 tests, 1 assertions, 0 failures, 0 errors, 0 skips
Then I run it again by changing the method argument like this to update the
sesison token
assert_equal @bob1, Guser.update_token("bob@mcbob.com", "bob", "77a138")
It still gives a success message: 1 tests, 1 assertions, 0 failures, 0
errors, 0 skips
The new value of session token is never updated in the table column from
'77a38' to '77a38' . Can you please tell me how to update the sesison token
if my glogin and login fields are found to match