aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/active_record/connection_adapters
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-02-04 13:34:41 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2011-02-04 13:34:57 -0800
commitdf077604865b12b119be0259575675f45b958524 (patch)
tree2c9bc66fe3e966160414b13aec03cd1ce1cff89a /activerecord/test/active_record/connection_adapters
parentadbae9aab8a439a824cf1612febb5918d0f4cf87 (diff)
downloadrails-df077604865b12b119be0259575675f45b958524.tar.gz
rails-df077604865b12b119be0259575675f45b958524.tar.bz2
rails-df077604865b12b119be0259575675f45b958524.zip
introduce a fake AR adapter for mocking database return values
Diffstat (limited to 'activerecord/test/active_record/connection_adapters')
-rw-r--r--activerecord/test/active_record/connection_adapters/fake_adapter.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/activerecord/test/active_record/connection_adapters/fake_adapter.rb b/activerecord/test/active_record/connection_adapters/fake_adapter.rb
new file mode 100644
index 0000000000..1c2942170e
--- /dev/null
+++ b/activerecord/test/active_record/connection_adapters/fake_adapter.rb
@@ -0,0 +1,36 @@
+module ActiveRecord
+ class Base
+ def self.fake_connection(config)
+ ConnectionAdapters::FakeAdapter.new nil, logger
+ end
+ end
+
+ module ConnectionAdapters
+ class FakeAdapter < AbstractAdapter
+ attr_accessor :tables, :primary_keys
+
+ def initialize(connection, logger)
+ super
+ @tables = []
+ @primary_keys = {}
+ @columns = Hash.new { |h,k| h[k] = [] }
+ end
+
+ def primary_key(table)
+ @primary_keys[table]
+ end
+
+ def merge_column(table_name, name, sql_type = nil, options = {})
+ @columns[table_name] << ActiveRecord::ConnectionAdapters::Column.new(
+ name.to_s,
+ options[:default],
+ sql_type.to_s,
+ options[:null])
+ end
+
+ def columns(table_name, message)
+ @columns[table_name]
+ end
+ end
+ end
+end