Sha256: 76acf4da390ef3100c6df8f5734eed9db863a53185eef0feb4d2bb1f04d53ed2

Contents?: true

Size: 1.9 KB

Versions: 34

Compression:

Stored size: 1.9 KB

Contents

require File.join(File.dirname(__FILE__), 'abstract_unit')

if ActiveRecord::Base.connection.supports_migrations? 
  class Thing < ActiveRecord::Base
    attr_accessor :version
    acts_as_versioned
  end

  class MigrationTest < Test::Unit::TestCase
    self.use_transactional_fixtures = false
    def teardown
      if ActiveRecord::Base.connection.respond_to?(:initialize_schema_information)
        ActiveRecord::Base.connection.initialize_schema_information
        ActiveRecord::Base.connection.update "UPDATE schema_info SET version = 0"
      else
        ActiveRecord::Base.connection.initialize_schema_migrations_table
        ActiveRecord::Base.connection.assume_migrated_upto_version(0)
      end
      
      Thing.connection.drop_table "things" rescue nil
      Thing.connection.drop_table "thing_versions" rescue nil
      Thing.reset_column_information
    end
        
    def test_versioned_migration
      assert_raises(ActiveRecord::StatementInvalid) { Thing.create :title => 'blah blah' }
      # take 'er up
      ActiveRecord::Migrator.up(File.dirname(__FILE__) + '/fixtures/migrations/')
      t = Thing.create :title => 'blah blah', :price => 123.45, :type => 'Thing'
      assert_equal 1, t.versions.size
      
      # check that the price column has remembered its value correctly
      assert_equal t.price,  t.versions.first.price
      assert_equal t.title,  t.versions.first.title
      assert_equal t[:type], t.versions.first[:type]
      
      # make sure that the precision of the price column has been preserved
      assert_equal 7, Thing::Version.columns.find{|c| c.name == "price"}.precision
      assert_equal 2, Thing::Version.columns.find{|c| c.name == "price"}.scale

      # now lets take 'er back down
      ActiveRecord::Migrator.down(File.dirname(__FILE__) + '/fixtures/migrations/')
      assert_raises(ActiveRecord::StatementInvalid) { Thing.create :title => 'blah blah' }
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
redmine_extensions-0.0.39 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.0.38 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.0.37 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.1.11 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.1.10 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.0.36 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.0.34 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.1.09 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.1.07 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.1.06 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.1.05 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.1.04 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.1.03 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.0.33 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.1.02 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.1.01 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.0.29 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.0.28 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.0.27 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb
redmine_extensions-0.0.24 spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb