test/stores/redis/like_store_test.rb in socialization-0.5.0.beta3 vs test/stores/redis/like_store_test.rb in socialization-0.5.0.beta4
- old
+ new
@@ -1,153 +1,25 @@
require File.expand_path(File.dirname(__FILE__))+'/../../test_helper'
class RedisLikeStoreTest < Test::Unit::TestCase
- context "RedisStores::LikeStoreTest" do
+ context "RedisStores::Like" do
setup do
use_redis_store
@klass = Socialization::RedisStores::Like
- @klass.touch nil
- @klass.after_like nil
- @klass.after_unlike nil
- @liker = ImALiker.create
- @likeable = ImALikeable.create
+ @base = Socialization::RedisStores::Base
end
- context "Stores" do
- should "inherit Socialization::RedisStores::Like" do
- assert_equal Socialization::RedisStores::Like, Socialization.like_model
+ context "method aliases" do
+ should "be set properly and made public" do
+ assert_method_public @klass, :like!
+ assert_method_public @klass, :unlike!
+ assert_method_public @klass, :likes?
+ assert_method_public @klass, :likers_relation
+ assert_method_public @klass, :likers
+ assert_method_public @klass, :likeables_relation
+ assert_method_public @klass, :likeables
+ assert_method_public @klass, :remove_likers
+ assert_method_public @klass, :remove_likeables
end
end
-
- context "#like!" do
- should "create a Like record" do
- @klass.like!(@liker, @likeable)
- assert_equal ["#{@liker.id}"], Socialization.redis.smembers(likers_key)
- assert_equal ["#{@likeable.id}"], Socialization.redis.smembers(likeables_key)
- end
-
- should "touch liker when instructed" do
- @klass.touch :liker
- @liker.expects(:touch).once
- @likeable.expects(:touch).never
- @klass.like!(@liker, @likeable)
- end
-
- should "touch likeable when instructed" do
- @klass.touch :likeable
- @liker.expects(:touch).never
- @likeable.expects(:touch).once
- @klass.like!(@liker, @likeable)
- end
-
- should "touch all when instructed" do
- @klass.touch :all
- @liker.expects(:touch).once
- @likeable.expects(:touch).once
- @klass.like!(@liker, @likeable)
- end
-
- should "call after like hook" do
- @klass.after_like :after_like
- @klass.expects(:after_like).once
- @klass.like!(@liker, @likeable)
- end
-
- should "call after unlike hook" do
- @klass.after_like :after_unlike
- @klass.expects(:after_unlike).once
- @klass.like!(@liker, @likeable)
- end
- end
-
- context "#likes?" do
- should "return true when like exists" do
- Socialization.redis.sadd likers_key, @liker.id
- Socialization.redis.sadd likeables_key, @likeable.id
- assert_true @klass.likes?(@liker, @likeable)
- end
-
- should "return false when like doesn't exist" do
- assert_false @klass.likes?(@liker, @likeable)
- end
- end
-
- context "#likers" do
- should "return an array of likers" do
- liker1 = ImALiker.create
- liker2 = ImALiker.create
- liker1.like!(@likeable)
- liker2.like!(@likeable)
- assert_array_similarity [liker1, liker2], @klass.likers(@likeable, liker1.class)
- end
-
- should "return an array of liker ids when plucking" do
- liker1 = ImALiker.create
- liker2 = ImALiker.create
- liker1.like!(@likeable)
- liker2.like!(@likeable)
- assert_array_similarity [liker1.id, liker2.id], @klass.likers(@likeable, liker1.class, :pluck => :id)
- end
- end
-
- context "#likeables" do
- should "return an array of likeables" do
- likeable1 = ImALikeable.create
- likeable2 = ImALikeable.create
- @liker.like!(likeable1)
- @liker.like!(likeable2)
-
- assert_array_similarity [likeable1, likeable2], @klass.likeables(@liker, likeable1.class)
- end
-
- should "return an array of likeables ids when plucking" do
- likeable1 = ImALikeable.create
- likeable2 = ImALikeable.create
- @liker.like!(likeable1)
- @liker.like!(likeable2)
- assert_array_similarity [likeable1.id, likeable2.id], @klass.likeables(@liker, likeable1.class, :pluck => :id)
- end
- end
-
- context "#generate_likers_key" do
- should "return valid key when passed objects" do
- assert_equal "Likers:ImALikeable:#{@likeable.id}:ImALiker", likers_key(@liker, @likeable)
- end
-
- should "return valid key when liker is a class" do
- assert_equal "Likers:ImALikeable:#{@likeable.id}:ImALiker", likers_key(@liker.class, @likeable)
- end
- end
-
- context "#generate_likeables_key" do
- should "return valid key when passed objects" do
- assert_equal "Likeables:ImALiker:#{@liker.id}:ImALikeable", likeables_key(@liker, @likeable)
- end
-
- should "return valid key when likeable is a class" do
- assert_equal "Likeables:ImALiker:#{@liker.id}:ImALikeable", likeables_key(@liker, @likeable.class)
- end
- end
-
end
-
- # Helpers
- def assert_match_liker(like_record, liker)
- assert like_record.liker_type == liker.class.to_s && like_record.liker_id == liker.id
- end
-
- def assert_match_likeable(like_record, likeable)
- assert like_record.likeable_type == likeable.class.to_s && like_record.likeable_id == likeable.id
- end
-
- def likers_key(liker = nil, likeable = nil)
- liker ||= @liker
- likeable ||= @likeable
- @klass.send(:generate_likers_key, liker, likeable)
- end
-
- def likeables_key(liker = nil, likeable = nil)
- liker ||= @liker
- likeable ||= @likeable
- @klass.send(:generate_likeables_key, liker, likeable)
- end
-end
+end
\ No newline at end of file