Project

General

Profile

Download (2.7 KB) Statistics
| Branch: | Tag: | Revision:
require 'test/unit'

require 'rubygems'
require 'active_record'

$:.unshift File.dirname(__FILE__) + '/../lib'
require File.dirname(__FILE__) + '/../init'

ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :dbfile => ":memory:")

class Article < ActiveRecord::Base
validates_presence_of :subject
before_save :tweak_body
def tweak_body
self.body = "I've been tweaked"
end

end

class ArticleTest < Test::Unit::TestCase

def setup
ActiveRecord::Schema.define(:version => 1) do
create_table :articles do |t|
t.string :subject
t.string :body
t.timestamps
end
end
quick_art = Article.new({:subject => "I like turtles", :body => "They are my favorite"})
quick_art.skip_callbacks = true
quick_art.save
end
def teardown
ActiveRecord::Base.connection.tables.each do |table|
ActiveRecord::Base.connection.drop_table(table)
end
end
def test_has_skip_callbacks
assert Article.new.skip_callbacks.nil?
end

def test_create_without_callbacks
assert_difference('Article.count', 1) do
article = Article.new
article.skip_callbacks = true
article.subject = "This is a test"
assert article.save
assert article.body.nil?
end
end

def test_create_with_callbacks
assert_difference('Article.count', 1) do
article = Article.new
article.subject = "This is a test"
assert article.save
assert_equal article.body, "I've been tweaked"
end
end

def test_create_invalid_without_callbacks
assert_difference('Article.count', 0) do
article = Article.new
article.skip_callbacks = true
assert !article.save
assert article.body.nil?
end
end

def test_create_invalid_with_callback
assert_difference('Article.count', 0) do
article = Article.new
assert !article.save
assert article.body.nil?
end
end

def test_update_without_callbacks
article = Article.find(:first)
article.skip_callbacks = true
article.subject = "This is a test"
assert article.save
assert_equal article.body, "They are my favorite"
end

def test_update_with_callbacks
article = Article.find(:first)
article.subject = "This is a test"
assert article.save
assert_equal article.body, "I've been tweaked"
end

def test_update_invalid_without_callbacks
article = Article.find(:first)
article.skip_callbacks = true
article.subject = nil
assert !article.save
assert_equal article.body, "They are my favorite"
end

def test_update_invalid_with_callback
article = Article.find(:first)
article.subject = nil
assert !article.save
assert_equal article.body, "They are my favorite"
end
end
    (1-1/1)