text: require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
  
  module GovKit::FollowTheMoney
    describe GovKit::FollowTheMoney do
  
      before(:all) do
        unless FakeWeb.allow_net_connect?
          base_uri = GovKit::FollowTheMoneyResource.base_uri.gsub(/\./, '\.')
  
          urls = [
            ['/base_level\.industries\.list\.php\?.*page=0',                          'business-page0.response'],
            ['/base_level\.industries\.list\.php\?.*page=1',                          'business-page1.response'],
            ['/candidates\.contributions\.php\?imsp_candidate_id=111933',             'contribution.response'],
            ['/candidates\.contributions\.php\?imsp_candidate_id=0',                  'unauthorized.response'],
          ]
  
          urls.each do |u|
            FakeWeb.register_uri(:get, %r|#{base_uri}#{u[0]}|, :response => File.join(FIXTURES_DIR, 'follow_the_money', u[1]))
          end
        end
      end
  
      it "should have the base uri set properly" do
        [Business, Contribution].each do |klass|
          klass.base_uri.should == "http://api.followthemoney.org"
        end
      end
  
      it "should raise NotAuthorized if the api key is not valid" do
        api_key = GovKit.configuration.ftm_apikey
  
        GovKit.configuration.ftm_apikey = nil
  
        lambda do 
          @contribution = Contribution.find(0)
        end.should raise_error(GovKit::NotAuthorized)
  
        @contribution.should be_nil
  
        GovKit.configuration.ftm_apikey = api_key
      end
  
      describe Business do
        it "should get a list of industries" do
          @businesses = Business.list
          @businesses.should be_an_instance_of(Array)
          @businesses.each do |b|
            b.should be_an_instance_of(Business)
          end
        end
      end
  
      describe Contribution do
        it "should get a list of campaign contributions for a given person" do
          pending 'This API call is restricted'
          @contributions = Contribution.find(111933)
          @contributions.should be_an_instance_of(Array)
          @contributions.each do |c|
            c.should be_an_instance_of(Contribution)
          end
        end
      end
  
    end
  end
  