2010-02-13 05:11:27 -05:00
|
|
|
require File.dirname(__FILE__) + '/../test_helper'
|
2010-02-11 14:59:58 -05:00
|
|
|
|
|
|
|
class PoolTest < ActiveSupport::TestCase
|
2010-02-13 05:11:27 -05:00
|
|
|
context "A pool" do
|
2010-02-19 17:54:44 -05:00
|
|
|
setup do
|
|
|
|
MEMCACHE.flush_all
|
|
|
|
end
|
|
|
|
|
2010-02-13 05:11:27 -05:00
|
|
|
should "create versions for each distinct user" do
|
|
|
|
pool = Factory.create(:pool)
|
|
|
|
user = Factory.create(:user)
|
|
|
|
assert_equal(1, pool.versions(true).size)
|
2010-02-19 17:54:44 -05:00
|
|
|
pool.post_ids = "1"
|
|
|
|
pool.updater_id = user.id
|
|
|
|
pool.updater_ip_addr = "128.0.0.1"
|
|
|
|
pool.save
|
2010-02-13 05:11:27 -05:00
|
|
|
assert_equal(2, pool.versions(true).size)
|
2010-02-19 17:54:44 -05:00
|
|
|
pool.post_ids = "1 2"
|
|
|
|
pool.updater_id = user.id
|
|
|
|
pool.updater_ip_addr = "128.0.0.1"
|
|
|
|
pool.save
|
2010-02-13 05:11:27 -05:00
|
|
|
assert_equal(2, pool.versions(true).size)
|
|
|
|
pool.revert_to!(PoolVersion.first)
|
|
|
|
assert_equal("", pool.post_ids)
|
|
|
|
end
|
|
|
|
|
|
|
|
should "have posts" do
|
|
|
|
pool = Factory.create(:pool)
|
|
|
|
p1 = Factory.create(:post)
|
|
|
|
p2 = Factory.create(:post)
|
|
|
|
p3 = Factory.create(:post)
|
|
|
|
p4 = Factory.create(:post)
|
|
|
|
p1.add_pool(pool)
|
|
|
|
p2.add_pool(pool)
|
|
|
|
p3.add_pool(pool)
|
|
|
|
|
|
|
|
assert_equal("#{p1.id} #{p2.id} #{p3.id}", pool.post_ids)
|
|
|
|
assert_equal([p1.id, p2.id, p3.id], pool.post_id_array)
|
|
|
|
posts = pool.posts.all
|
|
|
|
assert_equal(3, posts.size)
|
|
|
|
assert_equal([p1.id, p2.id, p3.id], posts.map(&:id))
|
|
|
|
posts = pool.posts(:limit => 1, :offset => 1).all
|
|
|
|
assert_equal(1, posts.size)
|
|
|
|
assert_equal([p2.id], posts.map(&:id))
|
|
|
|
end
|
|
|
|
|
|
|
|
should "return the neighboring posts for any member element" do
|
|
|
|
pool = Factory.create(:pool)
|
|
|
|
p1 = Factory.create(:post)
|
|
|
|
p2 = Factory.create(:post)
|
|
|
|
p3 = Factory.create(:post)
|
|
|
|
p1.add_pool(pool)
|
|
|
|
p2.add_pool(pool)
|
|
|
|
p3.add_pool(pool)
|
|
|
|
neighbors = pool.neighbor_posts(p1)
|
|
|
|
assert_nil(neighbors[:previous])
|
|
|
|
assert_equal(p2.id, neighbors[:next])
|
|
|
|
neighbors = pool.neighbor_posts(p2)
|
|
|
|
assert_equal(p1.id, neighbors[:previous])
|
|
|
|
assert_equal(p3.id, neighbors[:next])
|
|
|
|
neighbors = pool.neighbor_posts(p3)
|
|
|
|
assert_equal(p2.id, neighbors[:previous])
|
|
|
|
assert_nil(neighbors[:next])
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context "An anonymous pool" do
|
|
|
|
should "have a name starting with anonymous" do
|
|
|
|
user = Factory.create(:user)
|
|
|
|
pool = Pool.create_anonymous(user, "127.0.0.1")
|
|
|
|
assert_match(/^anonymous:\d+$/, pool.name)
|
|
|
|
end
|
2010-02-11 14:59:58 -05:00
|
|
|
end
|
|
|
|
end
|