aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/models/contact.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/test/models/contact.rb')
-rw-r--r--activerecord/test/models/contact.rb43
1 files changed, 43 insertions, 0 deletions
diff --git a/activerecord/test/models/contact.rb b/activerecord/test/models/contact.rb
new file mode 100644
index 0000000000..6e02ff199b
--- /dev/null
+++ b/activerecord/test/models/contact.rb
@@ -0,0 +1,43 @@
+# frozen_string_literal: true
+
+module ContactFakeColumns
+ def self.extended(base)
+ base.class_eval do
+ establish_connection(adapter: "fake")
+
+ connection.data_sources = [table_name]
+ connection.primary_keys = {
+ table_name => "id"
+ }
+
+ column :id, :integer
+ column :name, :string
+ column :age, :integer
+ column :avatar, :binary
+ column :created_at, :datetime
+ column :awesome, :boolean
+ column :preferences, :string
+ column :alternative_id, :integer
+
+ serialize :preferences
+
+ belongs_to :alternative, class_name: "Contact"
+ end
+ end
+
+ # mock out self.columns so no pesky db is needed for these tests
+ def column(name, sql_type = nil, options = {})
+ connection.merge_column(table_name, name, sql_type, options)
+ end
+end
+
+class Contact < ActiveRecord::Base
+ extend ContactFakeColumns
+end
+
+class ContactSti < ActiveRecord::Base
+ extend ContactFakeColumns
+ column :type, :string
+
+ def type; "ContactSti" end
+end