# = Og Mocking Example # # A simple example to demonstrate how to mock Og. # Very useful in test units. # # code: # * George Moschovitis # # (c) 2004 Navel, all rights reserved. # $Id: run.rb 185 2004-12-10 13:29:09Z gmosx $ $LOAD_PATH.unshift '../../lib' require 'rubygems' require 'flexmock' require 'og' require 'og/mock' require 'logger' $log = Logger.new($stderr) class Article prop_accessor :body, String def initialize(body = nil) @body = body end end class SimpleTest < Test::Unit::TestCase def setup $og = Og::MockDatabase.new end def teardown $og = nil end def test_me mocks = [ Article.new('body1'), Article.new('body2'), Article.new('body3') ] $og.mock_handle(:load_all) { |klass, extrasql| mocks } # differnt ways to call the mocked method... puts 'Here are the articles:', Article.all puts 'Here are the articles:', Article.load_all puts 'Here are the articles:', $og.load_all(Article) # 3 times called assert_equal(3, $og.mock_count(:load_all)) end end