# Setup environment for both tests and IRB interactive console # $KCODE = 'u' unless RUBY_VERSION =~ /^1\.9/ # to make parameterize work... require 'rubygems' require 'bundler/setup' require 'test/unit' require 'active_support' require 'active_record' require 'active_support/version' require 'active_record/version' # create database connection (in memory db!) ActiveRecord::Base.establish_connection({ :adapter => RUBY_PLATFORM =~ /java/ ? 'jdbcsqlite3' : 'sqlite3', :database => ':memory:'}) # load simple_enum require 'simple_enum' # load dummy class require File.join(File.dirname(__FILE__), 'models') # Test environment info puts "Testing against: activesupport-#{ActiveSupport::VERSION::STRING}, activerecord-#{ActiveRecord::VERSION::STRING}" # Add test locales I18n.load_path << File.join(File.dirname(__FILE__), 'locales.yml') # Reload database def reload_db(options = {}) options = { :fill => true, :genders => false }.merge(options) ActiveRecord::Base.connection.create_table :dummies, :force => true do |t| t.column :name, :string t.column :gender_cd, :integer t.column :word_cd, :string, :limit => 5 t.column :other, :integer end ActiveRecord::Base.connection.create_table :computers, :force => true do |t| t.column :name, :string t.column :operating_system_cd, :integer t.column :manufacturer_cd, :integer end # Create ref-data table and fill with records ActiveRecord::Base.connection.create_table :genders, :force => true do |t| t.column :name, :string end if options[:fill] # fill db with some rows Dummy.create({ :name => 'Anna', :gender_cd => 1, :word_cd => 'alpha', :other => 0}) Dummy.create({ :name => 'Bella', :gender_cd => 1, :word_cd => 'beta', :other => 1}) Dummy.create({ :name => 'Chris', :gender_cd => 0, :word_cd => 'gamma', :other => 2}) end if options[:genders] male = Gender.new({ :name => 'male' }) male.id = 0; male.save! female = Gender.new({ :name => 'female' }) female.id = 1; female.save! end end # do some magic to initialze DB for IRB session if Object.const_defined?('IRB') reload_db :fill => true, :genders => true else # and load test classes when in test cases... require 'test/unit' require 'active_support/test_case' end