Add the has_many_polymorphs plugin
[cs356-p2-videostore.git] / vendor / plugins / has_many_polymorphs / generators / tagging / templates / tagging_test.rb
diff --git a/vendor/plugins/has_many_polymorphs/generators/tagging/templates/tagging_test.rb b/vendor/plugins/has_many_polymorphs/generators/tagging/templates/tagging_test.rb
new file mode 100644 (file)
index 0000000..5740666
--- /dev/null
@@ -0,0 +1,62 @@
+require File.dirname(__FILE__) + '/../test_helper'
+
+class TaggingTest < Test::Unit::TestCase
+  fixtures :taggings, :tags, <%= taggable_models[0..1].join(", ") -%>
+
+  def setup
+    @obj1 = <%= model_two %>.find(1)
+    @obj2 = <%= model_two %>.find(2)
+<% if taggable_models.size > 1 -%>
+    @obj3 = <%= model_one -%>.find(1)
+<% end -%>
+    @tag1 = Tag.find(1)  
+    @tag2 = Tag.find(2)  
+    @tagging1 = Tagging.find(1)
+  end
+
+  def test_tag_with
+    @obj2.tag_with "dark columbian"
+    assert_equal "columbian dark", @obj2.tag_list
+  end
+  
+<% if options[:self_referential] -%>  
+  def test_self_referential_tag_with
+    @tag1.tag_with [1, 2]
+    assert @tag1.tags.include?(@tag1)
+    assert !@tag2.tags.include?(@tag1)
+  end
+
+<% end -%>
+  def test__add_tags
+    @obj1._add_tags "porter longneck"
+    assert Tag.find_by_name("porter").taggables.include?(@obj1)
+    assert Tag.find_by_name("longneck").taggables.include?(@obj1)
+    assert_equal "delicious longneck porter", @obj1.tag_list    
+    
+    @obj1._add_tags [2]
+    assert_equal "delicious longneck porter sexy", @obj1.tag_list        
+  end
+  
+  def test__remove_tags
+    @obj2._remove_tags ["2", @tag1]
+    assert @obj2.tags.empty?
+  end
+  
+  def test_tag_list
+    assert_equal "delicious sexy", @obj2.tag_list
+  end
+    
+  def test_taggable
+    assert_raises(RuntimeError) do 
+      @tagging1.send(:taggable?, true) 
+    end
+    assert !@tagging1.send(:taggable?)
+<% if taggable_models.size > 1 -%>
+    assert @obj3.send(:taggable?)
+<% end -%>
+<% if options[:self_referential] -%>  
+    assert @tag1.send(:taggable?)
+<% end -%>    
+  end
+    
+end