require "spec_helper" describe PagSeguro do describe "configuration" do before do @config_file = Rails.root.join("config/pagseguro.yml") @contents = YAML.load_file(@config_file) File.stub :exists? => true YAML.stub :load_file => @contents module PagSeguro; @@config = nil; end end it "should raise error if configuration is not found" do File.should_receive(:exist?).with(@config_file).and_return(false) expect { PagSeguro.config }.to raise_error(PagSeguro::MissingConfigurationError) end it "should raise error if no environment is set on config file" do YAML.should_receive(:load_file).with(@config_file).and_return({}) expect { PagSeguro.config }.to raise_error(PagSeguro::MissingEnvironmentError) end it "should raise error if config file is empty" do # YAML.load_file return false when file is zero-byte YAML.should_receive(:load_file).with(@config_file).and_return(false) expect { PagSeguro.config }.to raise_error(PagSeguro::MissingEnvironmentError) end it "should return local url if developer mode is enabled" do PagSeguro.should_receive(:developer?).and_return(true) PagSeguro.gateway_url.should == "/pagseguro_developer" end it "should return real url if developer mode is disabled" do PagSeguro.should_receive(:developer?).and_return(false) PagSeguro.gateway_url.should == "https://pagseguro.uol.com.br/checkout/checkout.jhtml" end it "should read configuration developer mode" do PagSeguro.stub :config => {"developer" => true} PagSeguro.should be_developer PagSeguro.stub :config => {"developer" => false} PagSeguro.should_not be_developer end end end