Sha256: 7ddabdbb5452ba586d921700dad994c8f6b2ead7f37db91d9fadd0455af3be37

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

require 'spec_helper'

describe SlideshareApi::Client do
  let(:api_key) { 'api key' }
  let(:shared_secret) { 'shared secret' }
  let(:slideshare_client) { SlideshareApi::Client.new api_key, shared_secret }
  let(:connection) { slideshare_client.connection }
  let(:api_validation_params) { slideshare_client.send(:api_validation_params) }

  describe '.connection' do
    it { expect(connection).to be_a(Faraday::Connection) }
    it { expect("#{connection.url_prefix.scheme}://#{connection.url_prefix.host}#{connection.url_prefix.path}").to eq(SlideshareApi::Client::SLIDESHARE_API_URL) }
  end

  describe '.api_validation_params' do
    subject { slideshare_client.send(:api_validation_params) }
    it { should eq({api_key: api_key, ts: Time.now.to_i, hash: Digest::SHA1.hexdigest("#{shared_secret}#{Time.now.to_i}")}) }
  end

  describe '.slideshow' do
    let(:slideshow_raw_xml) { open('spec/fixtures/slideshow.xml').read }
    let(:slideshow_url) { 'http://fr.slideshare.net/jeremyvenezia/prerequis-pour-appliquer-le-lean-startup-en-entreprise' }

    before { expect(connection).to receive(:get).with('get_slideshow', api_validation_params.merge({slideshow_url: slideshow_url})).and_return(connection) }
    before { expect(connection).to receive(:body).and_return(slideshow_raw_xml) }

    subject { slideshare_client.slideshow slideshow_url }

    it { should eql? SlideshareApi::Model::Slideshow.new(Nokogiri::XML(slideshow_raw_xml)) }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
slideshare_api-0.0.1 spec/client_spec.rb