require 'rails_helper'

describe Agents::AdiosoAgent do
	before do
		stub_request(:get, /parse/).to_return(:body => File.read(Rails.root.join("spec/data_fixtures/adioso_parse.json")), :status => 200, :headers => {"Content-Type" => "text/json"})
		stub_request(:get, /fares/).to_return(:body => File.read(Rails.root.join("spec/data_fixtures/adioso_fare.json")),  :status => 200, :headers => {"Content-Type" => "text/json"})
		@valid_params = {
											:start_date => "June 25 2013",
											:end_date   => "July 15 2013",
											:from       => "Portland",
											:to         => "Chicago",
											:username   => "xx",
											:password   => "xx",
											:expected_update_period_in_days => "2"
										}

		@checker = Agents::AdiosoAgent.new(:name => "somename", :options => @valid_params)
		@checker.user = users(:jane)
		@checker.save!
	end

	describe "#check" do
		it "should check that initial run creates an event" do
			expect { @checker.check }.to change { Event.count }.by(1)
		end
	end

	describe "#working?" do
		it "checks if its generating events as scheduled" do
			expect(@checker).not_to be_working
			@checker.check
			expect(@checker.reload).to be_working
			three_days_from_now = 3.days.from_now
			allow(Time).to receive(:now) { three_days_from_now }
			expect(@checker).not_to be_working
		end
	end
end
