0
+require 'active_support/test_case'
0
- def keys; map { |k, v| k } end
0
- def values; map { |k, v| v } end
0
+if RUBY_VERSION < '1.9'
0
+ def keys; map { |k, v| k } end
0
+ def values; map { |k, v| v } end
0
# in a non-verbose, human-readable format. It ships with Ruby 1.8.1+.
0
# Unlike single-file fixtures, YAML fixtures are stored in a single file per model, which are placed in the directory appointed
0
-# by <tt>
Test::Unit::TestCase.fixture_path=(path)</tt> (this is automatically configured for Rails, so you can just
0
+# by <tt>
ActiveSupport::TestCase.fixture_path=(path)</tt> (this is automatically configured for Rails, so you can just
0
# put your files in <your-rails-app>/test/fixtures/). The fixture file ends with the .yml file extension (Rails example:
0
# "<your-rails-app>/test/fixtures/web_sites.yml"). The format of a YAML fixture file looks like this:
0
# This type of fixture was the original format for Active Record that has since been deprecated in favor of the YAML and CSV formats.
0
# Fixtures for this format are created by placing text files in a sub-directory (with the name of the model) to the directory
0
-# appointed by <tt>
Test::Unit::TestCase.fixture_path=(path)</tt> (this is automatically configured for Rails, so you can just
0
+# appointed by <tt>
ActiveSupport::TestCase.fixture_path=(path)</tt> (this is automatically configured for Rails, so you can just
0
# put your files in <your-rails-app>/test/fixtures/<your-model-name>/ -- like <your-rails-app>/test/fixtures/web_sites/ for the WebSite
0
-# class WebSiteTest <
Test::Unit::TestCase
0
+# class WebSiteTest <
ActiveSupport::TestCase
0
# def test_web_site_count
0
# assert_equal 2, WebSite.count
0
# easiest way to add fixtures to the database:
0
-# class WebSiteTest <
Test::Unit::TestCase
0
+# class WebSiteTest <
ActiveSupport::TestCase
0
# fixtures :web_sites # add more by separating the symbols with commas
0
# TestCases can use begin+rollback to isolate their changes to the database instead of having to delete+insert for every test case.
0
# They can also turn off auto-instantiation of fixture data since the feature is costly and often unused.
0
-# class FooTest <
Test::Unit::TestCase
0
+# class FooTest <
ActiveSupport::TestCase
0
# self.use_transactional_fixtures = true
0
# self.use_instantiated_fixtures = false
0
class TestCase #:nodoc:
0
+ teardown :teardown_fixtures
0
superclass_delegating_accessor :fixture_path
0
superclass_delegating_accessor :fixture_table_names
0
superclass_delegating_accessor :fixture_class_names
0
@@ -857,68 +863,70 @@ module Test #:nodoc:
0
@@already_loaded_fixtures = {}
0
self.fixture_class_names = {}
0
- def self.set_fixture_class(class_names = {})
0
- self.fixture_class_names = self.fixture_class_names.merge(class_names)
0
- def self.fixtures(*table_names)
0
- if table_names.first == :all
0
- table_names = Dir["#{fixture_path}/*.yml"] + Dir["#{fixture_path}/*.csv"]
0
- table_names.map! { |f| File.basename(f).split('.')[0..-2].join('.') }
0
- table_names = table_names.flatten.map { |n| n.to_s }
0
+ def set_fixture_class(class_names = {})
0
+ self.fixture_class_names = self.fixture_class_names.merge(class_names)
0
- self.fixture_table_names |= table_names
0
- require_fixture_classes(table_names)
0
- setup_fixture_accessors(table_names)
0
+ def fixtures(*table_names)
0
+ if table_names.first == :all
0
+ table_names = Dir["#{fixture_path}/*.yml"] + Dir["#{fixture_path}/*.csv"]
0
+ table_names.map! { |f| File.basename(f).split('.')[0..-2].join('.') }
0
+ table_names = table_names.flatten.map { |n| n.to_s }
0
- def self.require_fixture_classes(table_names = nil)
0
- (table_names || fixture_table_names).each do |table_name|
0
- file_name = table_name.to_s
0
- file_name = file_name.singularize if ActiveRecord::Base.pluralize_table_names
0
- require_dependency file_name
0
- # Let's hope the developer has included it himself
0
+ self.fixture_table_names |= table_names
0
+ require_fixture_classes(table_names)
0
+ setup_fixture_accessors(table_names)
0
+ def require_fixture_classes(table_names = nil)
0
+ (table_names || fixture_table_names).each do |table_name|
0
+ file_name = table_name.to_s
0
+ file_name = file_name.singularize if ActiveRecord::Base.pluralize_table_names
0
+ require_dependency file_name
0
+ # Let's hope the developer has included it himself
0
- def self.setup_fixture_accessors(table_names = nil)
0
- table_names = [table_names] if table_names && !table_names.respond_to?(:each)
0
- (table_names || fixture_table_names).each do |table_name|
0
- table_name = table_name.to_s.tr('.', '_')
0
+ def setup_fixture_accessors(table_names = nil)
0
+ table_names = [table_names] if table_names && !table_names.respond_to?(:each)
0
+ (table_names || fixture_table_names).each do |table_name|
0
+ table_name = table_name.to_s.tr('.', '_')
0
- define_method(table_name) do |*fixtures|
0
- force_reload = fixtures.pop if fixtures.last == true || fixtures.last == :reload
0
+ define_method(table_name) do |*fixtures|
0
+ force_reload = fixtures.pop if fixtures.last == true || fixtures.last == :reload
0
-
@fixture_cache[table_name] ||= {}
0
+
@fixture_cache[table_name] ||= {}
0
- instances = fixtures.map do |fixture|
0
- @fixture_cache[table_name].delete(fixture) if force_reload
0
+ instances = fixtures.map do |fixture|
0
+ @fixture_cache[table_name].delete(fixture) if force_reload
0
- if @loaded_fixtures[table_name][fixture.to_s]
0
- @fixture_cache[table_name][fixture] ||= @loaded_fixtures[table_name][fixture.to_s].find
0
- raise StandardError, "No fixture with name '#{fixture}' found for table '#{table_name}'"
0
+ if @loaded_fixtures[table_name][fixture.to_s]
0
+ @fixture_cache[table_name][fixture] ||= @loaded_fixtures[table_name][fixture.to_s].find
0
+ raise StandardError, "No fixture with name '#{fixture}' found for table '#{table_name}'"
0
- instances.size == 1 ? instances.first : instances
0
+ instances.size == 1 ? instances.first : instances
0
- def self.uses_transaction(*methods)
0
- @uses_transaction = [] unless defined?(@uses_transaction)
0
- @uses_transaction.concat methods.map(&:to_s)
0
+ def uses_transaction(*methods)
0
+ @uses_transaction = [] unless defined?(@uses_transaction)
0
+ @uses_transaction.concat methods.map(&:to_s)
0
- def self.uses_transaction?(method)
0
- @uses_transaction = [] unless defined?(@uses_transaction)
0
- @uses_transaction.include?(method.to_s)
0
+ def uses_transaction?(method)
0
+ @uses_transaction = [] unless defined?(@uses_transaction)
0
+ @uses_transaction.include?(method.to_s)
0
def use_transactional_fixtures?
0
@@ -926,8 +934,8 @@ module Test #:nodoc:
0
!self.class.uses_transaction?(method_name)
0
- def setup_with_fixtures
0
- return unless defined?(ActiveRecord::Base) && !ActiveRecord::Base.configurations.blank?
0
+ return unless defined?(ActiveRecord) && !ActiveRecord::Base.configurations.blank?
0
if pre_loaded_fixtures && !use_transactional_fixtures
0
raise RuntimeError, 'pre_loaded_fixtures requires use_transactional_fixtures'
0
@@ -955,10 +963,9 @@ module Test #:nodoc:
0
# Instantiate fixtures for every test if requested.
0
instantiate_fixtures if use_instantiated_fixtures
0
- alias_method :setup, :setup_with_fixtures
0
- def teardown_with_fixtures
0
- return unless defined?(ActiveRecord::Base) && !ActiveRecord::Base.configurations.blank?
0
+ return unless defined?(ActiveRecord) && !ActiveRecord::Base.configurations.blank?
0
unless use_transactional_fixtures?
0
@@ -971,28 +978,6 @@ module Test #:nodoc:
0
ActiveRecord::Base.verify_active_connections!
0
- alias_method :teardown, :teardown_with_fixtures
0
- def self.method_added(method)
0
- unless method_defined?(:setup_without_fixtures)
0
- alias_method :setup_without_fixtures, :setup
0
- define_method(:setup) do
0
- setup_without_fixtures
0
- unless method_defined?(:teardown_without_fixtures)
0
- alias_method :teardown_without_fixtures, :teardown
0
- define_method(:teardown) do
0
- teardown_without_fixtures
0
- teardown_with_fixtures