Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugfix/feed service tests #743

Merged
merged 2 commits into from May 27, 2013
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
34 changes: 29 additions & 5 deletions test/services/feed_service_test.rb
Expand Up @@ -3,8 +3,6 @@
require 'mocha/setup' require 'mocha/setup'


describe FeedService do describe FeedService do
include TestHelper

describe "#find_or_create!" do describe "#find_or_create!" do
let(:service) { FeedService.new(target_feed) } let(:service) { FeedService.new(target_feed) }
let(:existing_feed) { mock } let(:existing_feed) { mock }
Expand All @@ -15,7 +13,9 @@
let(:target_feed) { "505cc1beb4f2cd000200022c" } let(:target_feed) { "505cc1beb4f2cd000200022c" }


before do before do
service.stubs(:find_feed_by_id).returns(existing_feed) Feed.stubs(:first)
.with(has_entry(:id, target_feed))
.returns(existing_feed)
end end


it "returns the feed" do it "returns the feed" do
Expand All @@ -29,12 +29,18 @@
let(:user) { mock } let(:user) { mock }
let(:author) { mock } let(:author) { mock }
let(:feed) { mock } let(:feed) { mock }
let(:uri) { mock }


describe "when the feed exists" do describe "when the feed exists" do
before do before do
User.stubs(:find_by_case_insensitive_username).returns(user) User.stubs(:find_by_case_insensitive_username).returns(user)
user.stubs(:author).returns(author) user.stubs(:author).returns(author)
Kernel.stubs(:URI).returns(uri)
uri.stubs(:host).returns("example.com")
author.stubs(:feed).returns(feed) author.stubs(:feed).returns(feed)

service.stubs(:find_feed_by_id).returns(nil)
service.stubs(:find_feed_by_remote_url).returns nil
end end


it "returns the feed" do it "returns the feed" do
Expand All @@ -45,6 +51,10 @@
describe "when the feed does not exist" do describe "when the feed does not exist" do
before do before do
User.stubs(:find_by_case_insensitive_username).returns(nil) User.stubs(:find_by_case_insensitive_username).returns(nil)
Kernel.stubs(:URI).returns(uri)
uri.stubs(:host).returns("example.com")

service.stubs(:find_feed_by_id).returns(nil)
service.stubs(:find_feed_by_remote_url).returns(existing_feed) service.stubs(:find_feed_by_remote_url).returns(existing_feed)
end end


Expand All @@ -57,11 +67,19 @@
describe "when the feed can by found by remote URL" do describe "when the feed can by found by remote URL" do
# the remote URL of user 'gavinlaking@rstat.us' (follow me!) # the remote URL of user 'gavinlaking@rstat.us' (follow me!)
let(:target_feed) { "https://rstat.us/feeds/505cc1beb4f2cd000200022c.atom" } let(:target_feed) { "https://rstat.us/feeds/505cc1beb4f2cd000200022c.atom" }
let(:feed_data_cov) { mock }
let(:feed_data) { mock }


before do before do
Feed.stubs(:first)
.with(has_entry(:remote_url, "feed_url"))
.returns(existing_feed)
SubscriberToFeedDataConverter.stubs(:new).returns(feed_data_cov)
feed_data_cov.stubs(:get_feed_data!).returns(feed_data)
feed_data.stubs(:url).returns("feed_url")

service.stubs(:find_feed_by_id).returns nil service.stubs(:find_feed_by_id).returns nil
service.stubs(:find_feed_by_username).returns nil service.stubs(:find_feed_by_username).returns nil
service.stubs(:find_feed_by_remote_url).returns(existing_feed)
end end


it "returns the feed" do it "returns the feed" do
Expand All @@ -71,15 +89,21 @@


describe "when the feed doesn't exist" do describe "when the feed doesn't exist" do
let(:target_feed) { "gavinlaking@rstat.us" } # (follow me!) let(:target_feed) { "gavinlaking@rstat.us" } # (follow me!)
let(:feed_data_cov) { mock }
let(:feed_data) { mock }


before do before do
service.stubs(:find_feed_by_id).returns nil service.stubs(:find_feed_by_id).returns nil
service.stubs(:find_feed_by_username).returns nil service.stubs(:find_feed_by_username).returns nil
service.stubs(:find_feed_by_remote_url).returns nil service.stubs(:find_feed_by_remote_url).returns nil
service.stubs(:create_feed_from_feed_data).returns(new_feed) SubscriberToFeedDataConverter.stubs(:new).returns(feed_data_cov)
feed_data_cov.stubs(:get_feed_data!).returns(feed_data)
end end


it "creates the feed" do it "creates the feed" do
Feed.expects(:create_and_populate!)
.with(feed_data)
.returns(new_feed)
service.find_or_create!.must_equal new_feed service.find_or_create!.must_equal new_feed
end end
end end
Expand Down