Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge remote-tracking branch 'wilkie/bugfix/feed-service-tests'

  • Loading branch information...
commit 52a524a9598699ff3d2c4513b6d6584217459806 2 parents b1848a7 + b08437d
@carols10cents carols10cents authored
Showing with 29 additions and 5 deletions.
  1. +29 −5 test/services/feed_service_test.rb
View
34 test/services/feed_service_test.rb
@@ -3,8 +3,6 @@
require 'mocha/setup'
describe FeedService do
- include TestHelper
-
describe "#find_or_create!" do
let(:service) { FeedService.new(target_feed) }
let(:existing_feed) { mock }
@@ -15,7 +13,9 @@
let(:target_feed) { "505cc1beb4f2cd000200022c" }
before do
- service.stubs(:find_feed_by_id).returns(existing_feed)
+ Feed.stubs(:first)
+ .with(has_entry(:id, target_feed))
+ .returns(existing_feed)
end
it "returns the feed" do
@@ -29,12 +29,18 @@
let(:user) { mock }
let(:author) { mock }
let(:feed) { mock }
+ let(:uri) { mock }
describe "when the feed exists" do
before do
User.stubs(:find_by_case_insensitive_username).returns(user)
user.stubs(:author).returns(author)
+ Kernel.stubs(:URI).returns(uri)
+ uri.stubs(:host).returns("example.com")
author.stubs(:feed).returns(feed)
+
+ service.stubs(:find_feed_by_id).returns(nil)
+ service.stubs(:find_feed_by_remote_url).returns nil
end
it "returns the feed" do
@@ -45,6 +51,10 @@
describe "when the feed does not exist" do
before do
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)
end
@@ -57,11 +67,19 @@
describe "when the feed can by found by remote URL" do
# the remote URL of user 'gavinlaking@rstat.us' (follow me!)
let(:target_feed) { "https://rstat.us/feeds/505cc1beb4f2cd000200022c.atom" }
+ let(:feed_data_cov) { mock }
+ let(:feed_data) { mock }
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_username).returns nil
- service.stubs(:find_feed_by_remote_url).returns(existing_feed)
end
it "returns the feed" do
@@ -71,15 +89,21 @@
describe "when the feed doesn't exist" do
let(:target_feed) { "gavinlaking@rstat.us" } # (follow me!)
+ let(:feed_data_cov) { mock }
+ let(:feed_data) { mock }
before do
service.stubs(:find_feed_by_id).returns nil
service.stubs(:find_feed_by_username).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
it "creates the feed" do
+ Feed.expects(:create_and_populate!)
+ .with(feed_data)
+ .returns(new_feed)
service.find_or_create!.must_equal new_feed
end
end
Please sign in to comment.
Something went wrong with that request. Please try again.