Commit 693b5280 by Daniel Schierbeck

Add a test for #drop_attached_file

parent b922111b
...@@ -7,6 +7,7 @@ class MockSchema ...@@ -7,6 +7,7 @@ class MockSchema
def initialize(table_name = nil) def initialize(table_name = nil)
@table_name = table_name @table_name = table_name
@columns = {} @columns = {}
@deleted_columns = []
end end
def column(name, type) def column(name, type)
...@@ -14,13 +15,19 @@ class MockSchema ...@@ -14,13 +15,19 @@ class MockSchema
end end
def remove_column(table_name, column_name) def remove_column(table_name, column_name)
return if @table_name && @table_name != table_name
@columns.delete(column_name) @columns.delete(column_name)
@deleted_columns.push(column_name)
end end
def has_column?(column_name) def has_column?(column_name)
@columns.key?(column_name) @columns.key?(column_name)
end end
def deleted_column?(column_name)
@deleted_columns.include?(column_name)
end
def type_of(column_name) def type_of(column_name)
@columns[column_name] @columns[column_name]
end end
...@@ -65,4 +72,27 @@ class SchemaTest < Test::Unit::TestCase ...@@ -65,4 +72,27 @@ class SchemaTest < Test::Unit::TestCase
assert_equal :datetime, @schema.type_of(:avatar_updated_at) assert_equal :datetime, @schema.type_of(:avatar_updated_at)
end end
end end
context "Migrating down" do
setup do
@schema = MockSchema.new(:users)
@schema.drop_attached_file :users, :avatar
end
should "remove the file_name column" do
assert @schema.deleted_column?(:avatar_file_name)
end
should "remove the content_type column" do
assert @schema.deleted_column?(:avatar_content_type)
end
should "remove the file_size column" do
assert @schema.deleted_column?(:avatar_file_size)
end
should "remove the updated_at column" do
assert @schema.deleted_column?(:avatar_updated_at)
end
end
end end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment