diff options
| author | Chris Sepic | 2010-02-27 14:35:11 -0600 | 
|---|---|---|
| committer | Chris Sepic | 2010-02-27 14:35:11 -0600 | 
| commit | 839114cf53e30d4dc2585d4ab9b5720c2c408b80 (patch) | |
| tree | b01f8f8058a5154f072eb6971510626722dc9dd4 /spec | |
| parent | 7ffc7d8f20271259f5da95cb62aa073dbb012b1d (diff) | |
| download | evernote-839114cf53e30d4dc2585d4ab9b5720c2c408b80.tar.bz2 | |
move auth to yaml config, add proxying
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/evernote/client_spec.rb | 9 | ||||
| -rw-r--r-- | spec/evernote/user_store_spec.rb | 56 | 
2 files changed, 37 insertions, 28 deletions
| diff --git a/spec/evernote/client_spec.rb b/spec/evernote/client_spec.rb index 5d3d08c..a2902f2 100644 --- a/spec/evernote/client_spec.rb +++ b/spec/evernote/client_spec.rb @@ -8,4 +8,13 @@ describe "Evernote::Client" do      Evernote::Client.new(klass, "https://www.example.com")    end +   +  it "should proxy methods" do +    thrift_client = mock("ThriftClient") +    ThriftClient.stub!(:new => thrift_client) +    thrift_client.should_receive(:foobar) + +    client = Evernote::Client.new(mock("SomeInternalEvernoteClass"), "https://www.example.com") +    client.foobar +  end  end diff --git a/spec/evernote/user_store_spec.rb b/spec/evernote/user_store_spec.rb index 623d80d..04ec737 100644 --- a/spec/evernote/user_store_spec.rb +++ b/spec/evernote/user_store_spec.rb @@ -2,44 +2,44 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')  describe "Evernote::UserStore" do    before(:each) do -    @opts = { :consumer_key => "12345", :consumer_secret => "ABCDE", :username => "cgs", :password => "password" } +    @auth_file = File.dirname(__FILE__) + "/auth.yaml" +    @env = :sandbox    end    it "initializes an Evernote::Client" do      Evernote::Client.should_receive(:new).with(Evernote::EDAM::UserStore::UserStore::Client, "https://sandbox.evernote.com/edam/user", {}) -    Evernote::UserStore.new("https://sandbox.evernote.com/edam/user", @opts) +    Evernote::UserStore.new("https://sandbox.evernote.com/edam/user", @auth_file, @env)    end -  it "raises an exception if no consumer key is set" do -    thrift_client_opts = {} -    @opts.delete(:consumer_key) -    lambda { -      Evernote::UserStore.new("https://sandbox.evernote.com/edam/user", @opts, thrift_client_opts) -    }.should raise_error(ArgumentError, ":consumer_key, :consumer_secret, :username and :password are required") +  %w(consumer_key consumer_secret username password).each do |credential| +    it "raises an exception if no #{credential} is set" do +      lambda { +        Evernote::UserStore.new("https://sandbox.evernote.com/edam/user", @auth_file, :invalid) +      }.should raise_error(ArgumentError, "'consumer_key', 'consumer_secret', 'username' and 'password' are required") +    end    end -               -  it "raises an exception if no consumer secret is set" do -    thrift_client_opts = {} -    @opts.delete(:consumer_secret) -    lambda { -      Evernote::UserStore.new("https://sandbox.evernote.com/edam/user", @opts, thrift_client_opts) -    }.should raise_error(ArgumentError, ":consumer_key, :consumer_secret, :username and :password are required") +   +  it "should authenticate" do +    user_store = Evernote::UserStore.new("https://sandbox.evernote.com/edam/user", @auth_file, @env) +    user_store.instance_variable_get(:@client).should_receive(:authenticate).with("cgs", "password", "12345", "ABCDE").and_return(nil) +     +    user_store.authenticate    end - -  it "raises an exception if no username is set" do -    thrift_client_opts = {} -    @opts.delete(:username) +   +  it "should wrap authentication failure" do +    user_store = Evernote::UserStore.new("https://sandbox.evernote.com/edam/user", @auth_file, @env) +    user_store.instance_variable_get(:@client).should_receive(:authenticate).and_raise(Evernote::EDAM::Error::EDAMUserException) +          lambda { -      Evernote::UserStore.new("https://sandbox.evernote.com/edam/user", @opts, thrift_client_opts) -    }.should raise_error(ArgumentError, ":consumer_key, :consumer_secret, :username and :password are required") +      user_store.authenticate +    }.should raise_error(Evernote::UserStore::AuthenticationFailure)    end - -  it "raises an exception if no password is set" do -    thrift_client_opts = {} -    @opts.delete(:password) -    lambda { -      Evernote::UserStore.new("https://sandbox.evernote.com/edam/user", @opts, thrift_client_opts) -    }.should raise_error(ArgumentError, ":consumer_key, :consumer_secret, :username and :password are required") +   +  it "should proxy methods" do +    user_store = Evernote::UserStore.new("https://sandbox.evernote.com/edam/user", @auth_file, @env) +    user_store.instance_variable_get(:@client).should_receive(:foobar).and_return(nil) +     +    user_store.foobar    end  end | 
