require_relative 'spec_helper' describe RRImm::ItemFormatter::Mail do it 'formats correctly xkcd feed' do mail_formatter = RRImm::ItemFormatter::Mail.new( from: 'from@example.com', to: 'to@example.com' ) xkcd_file = File.join(File.dirname(__FILE__), 'xkcd.xml') xkcd_uri = 'http://toto.com/xkcd.xml' stub_request(:get, xkcd_uri). to_return(status: 200, body: File.read(xkcd_file)) feed = Feedjira::Feed.fetch_and_parse(xkcd_uri) expect(feed.entries.size).to be > 0 s = StringIO.new config = double('config') expect(config).to receive(:category).twice.and_return nil expect(config).to receive(:default_name?).and_return(true, false) expect(config).to receive(:uri).at_least(1).and_return(xkcd_uri) mail_formatter.format(feed, feed.entries.first, config, s) expect(s.string).to eq "From: RRImm \nTo: to@example.com\nDate: Fri, 07 Mar 2014 05:00:00 -0000\nSubject: When You Assume\nContent-Type: text/html;\nX-Source-Uri: http://toto.com/xkcd.xml\n\nhttp://xkcd.com/1339/\n\n\"You\n" s = StringIO.new expect(config).to receive(:name).and_return "Randall Munroe" mail_formatter.format(feed, feed.entries.first, config, s) end end describe RRImm::ItemFormatter::Default do it 'formats correctly xkcd feed' do default_formatter = RRImm::ItemFormatter::Default.new xkcd_file = File.join(File.dirname(__FILE__), 'xkcd.xml') xkcd_uri = 'http://toto.com/xkcd.xml' stub_request(:get, xkcd_uri). to_return(status: 200, body: File.read(xkcd_file)) feed = Feedjira::Feed.fetch_and_parse(xkcd_uri) expect(feed.entries.size).to be > 0 s = StringIO.new default_formatter.format(feed, feed.entries.first, nil, s) s.close expect(s.string).to eq "xkcd.com: When You Assume (2014-03-07 05:00:00 UTC)\n" end end