aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/active_record/connection_adapters/fake_adapter.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/test/active_record/connection_adapters/fake_adapter.rb')
-rw-r--r--activerecord/test/active_record/connection_adapters/fake_adapter.rb51
1 files changed, 51 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..f977b2997b
--- /dev/null
+++ b/activerecord/test/active_record/connection_adapters/fake_adapter.rb
@@ -0,0 +1,51 @@
+# frozen_string_literal: true
+
+module ActiveRecord
+ module ConnectionHandling
+ def fake_connection(config)
+ ConnectionAdapters::FakeAdapter.new nil, logger
+ end
+ end
+
+ module ConnectionAdapters
+ class FakeAdapter < AbstractAdapter
+ attr_accessor :data_sources, :primary_keys
+
+ @columns = Hash.new { |h, k| h[k] = [] }
+ class << self
+ attr_reader :columns
+ end
+
+ def initialize(connection, logger)
+ super
+ @data_sources = []
+ @primary_keys = {}
+ @columns = self.class.columns
+ end
+
+ def primary_key(table)
+ @primary_keys[table] || "id"
+ end
+
+ def merge_column(table_name, name, sql_type = nil, options = {})
+ @columns[table_name] << ActiveRecord::ConnectionAdapters::Column.new(
+ name.to_s,
+ options[:default],
+ fetch_type_metadata(sql_type),
+ options[:null])
+ end
+
+ def columns(table_name)
+ @columns[table_name]
+ end
+
+ def data_source_exists?(*)
+ true
+ end
+
+ def active?
+ true
+ end
+ end
+ end
+end