Sha256: bfd78298430e0353f1cb135b9cea3e6bf82f26c25ea7cb2ebc9a0cc191ea86bc

Contents?: true

Size: 1.79 KB

Versions: 3

Compression:

Stored size: 1.79 KB

Contents

require File.dirname(__FILE__) + '/../test_helper.rb'

class MigrationGeneratorTest < Test::Unit::TestCase
  
  def test_next_migration_number
    mg = MigrationGenerator.new("NAME" => "foo")
    assert_equal "001", mg.next_migration_number
    FileUtils.mkdir_p(migrations_directory)
    assert File.exists?(migrations_directory)
    File.open(File.join(migrations_directory, "001_foo.rb"), "w") {|f| f.puts ""}
    assert_equal "002", mg.next_migration_number
  end
  
  def test_generate_data_mapper
    generate_common
    mig = <<-MIG
class FooBar < ActiveRecord::Migration

  def self.up
  end

  def self.down
  end

end
MIG
    assert_equal mig, @file_body
  end

  def test_generate_data_mapper_with_columns
    generate_common({"NAME" => "create_users", "cols" => "username:string,email_address:string,created_at:datetime,updated_at:datetime"})
    mig = <<-MIG
class CreateUsers < ActiveRecord::Migration

  def self.up
    create_table :users do |t|
      t.column :username, :string
      t.column :email_address, :string
      t.column :created_at, :datetime
      t.column :updated_at, :datetime
    end
  end

  def self.down
    drop_table :users
  end

end
MIG
    assert_equal mig, @file_body
  end
  
  def generate_common(opts = {})
    5.times do |i|
      options = {"NAME" => "foo_bar"}.merge(opts)
      mg = MigrationGenerator.run(options)
      assert File.exists?(migrations_directory)
      assert File.exists?(File.join(migrations_directory, "00#{i+1}_#{options["NAME"]}.rb"))
      File.open(File.join(migrations_directory, "00#{i+1}_#{options["NAME"]}.rb"), "r") do |file|
        @file_body = file.read
      end
    end
  end
  
  def test_required_params
    assert_raise(ArgumentError) { MigrationGenerator.new }
    mg = MigrationGenerator.new("NAME" => "foo")
    assert_not_nil mg
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mack-active_record-0.5.0 test/generators/migration_generator_test.rb
mack-active_record-0.5.1 test/generators/migration_generator_test.rb
mack-active_record-0.5.5 test/generators/migration_generator_test.rb