From bfc398cb7083c41becf6e4938c0a80a6659a1caa Mon Sep 17 00:00:00 2001
From: Aaron Patterson <aaron.patterson@gmail.com>
Date: Tue, 30 Nov 2010 14:10:55 -0800
Subject: adding a test for ActiveRecord::Relation

---
 activerecord/test/cases/relation_test.rb | 56 ++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)
 create mode 100644 activerecord/test/cases/relation_test.rb

(limited to 'activerecord')

diff --git a/activerecord/test/cases/relation_test.rb b/activerecord/test/cases/relation_test.rb
new file mode 100644
index 0000000000..96856ac22b
--- /dev/null
+++ b/activerecord/test/cases/relation_test.rb
@@ -0,0 +1,56 @@
+require "cases/helper"
+
+module ActiveRecord
+  class RelationTest < ActiveRecord::TestCase
+    def test_construction
+      relation = nil
+      assert_nothing_raised do
+        relation = Relation.new :a, :b
+      end
+      assert_equal :a, relation.klass
+      assert_equal :b, relation.table
+      assert !relation.loaded, 'relation is not loaded'
+    end
+
+    def test_single_values
+      assert_equal [:limit, :offset, :lock, :readonly, :create_with, :from].sort,
+        Relation::SINGLE_VALUE_METHODS.sort
+    end
+
+    def test_initialize_single_values
+      relation = Relation.new :a, :b
+      Relation::SINGLE_VALUE_METHODS.each do |method|
+        assert_nil relation.send("#{method}_value"), method.to_s
+      end
+    end
+
+    def test_association_methods
+      assert_equal [:includes, :eager_load, :preload].sort,
+        Relation::ASSOCIATION_METHODS.sort
+    end
+
+    def test_initialize_association_methods
+      relation = Relation.new :a, :b
+      Relation::ASSOCIATION_METHODS.each do |method|
+        assert_equal [], relation.send("#{method}_values"), method.to_s
+      end
+    end
+
+    def test_multi_value_methods
+      assert_equal [:select, :group, :order, :joins, :where, :having, :bind].sort,
+        Relation::MULTI_VALUE_METHODS.sort
+    end
+
+    def test_multi_value_initialize
+      relation = Relation.new :a, :b
+      Relation::MULTI_VALUE_METHODS.each do |method|
+        assert_equal [], relation.send("#{method}_values"), method.to_s
+      end
+    end
+
+    def test_extensions
+      relation = Relation.new :a, :b
+      assert_equal [], relation.extensions
+    end
+  end
+end
-- 
cgit v1.2.3