diff options
| author | Chris Sepic | 2010-02-20 14:54:12 -0600 | 
|---|---|---|
| committer | Chris Sepic | 2010-02-20 14:54:12 -0600 | 
| commit | 0835f139d92af1d8275bdffe9ddb0d4414f02bb2 (patch) | |
| tree | e1a92b2a7aa998b9963e34feefd2b3e4b300a0ff | |
| parent | 506b8e48ac62cd342b43b13054e08053abb09c6e (diff) | |
| download | evernote-0835f139d92af1d8275bdffe9ddb0d4414f02bb2.tar.bz2 | |
UserStore wrapper
| -rw-r--r-- | lib/evernote.rb | 3 | ||||
| -rw-r--r-- | lib/evernote/user_store.rb | 16 | ||||
| -rw-r--r-- | spec/evernote/user_store_spec.rb | 53 | 
3 files changed, 57 insertions, 15 deletions
| diff --git a/lib/evernote.rb b/lib/evernote.rb index e02344b..81441d7 100644 --- a/lib/evernote.rb +++ b/lib/evernote.rb @@ -5,4 +5,5 @@ gen_rb_path = File.expand_path(File.dirname(__FILE__) + "/../vendor/gen-rb")  $LOAD_PATH.unshift gen_rb_path  $LOAD_PATH.unshift "#{gen_rb_path}/evernote/edam"  require "#{gen_rb_path}/evernote" -require "evernote/client"
\ No newline at end of file +require "evernote/client" +require "evernote/user_store" diff --git a/lib/evernote/user_store.rb b/lib/evernote/user_store.rb new file mode 100644 index 0000000..1be8cb6 --- /dev/null +++ b/lib/evernote/user_store.rb @@ -0,0 +1,16 @@ +module Evernote +  class UserStore +    def initialize(uri, opts = {}, thrift_client_options = {}) +      @consumer_key = opts[:consumer_key] +      @consumer_secret = opts[:consumer_secret] +      @username = opts[:username] +      @password = opts[:password] + +      unless @consumer_key && @consumer_secret && @username && @password +        raise ArgumentError, ":consumer_key, :consumer_secret, :username and :password are required" +      end + +      Evernote::Client.new(Evernote::EDAM::UserStore::UserStore::Client, uri, thrift_client_options) +    end +  end +end diff --git a/spec/evernote/user_store_spec.rb b/spec/evernote/user_store_spec.rb index fab5757..623d80d 100644 --- a/spec/evernote/user_store_spec.rb +++ b/spec/evernote/user_store_spec.rb @@ -1,20 +1,45 @@  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')  describe "Evernote::UserStore" do -  xit "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") +  before(:each) do +    @opts = { :consumer_key => "12345", :consumer_secret => "ABCDE", :username => "cgs", :password => "password" }    end -   -  xit "raises an exception if no consumer key is set" do -    Evernote::UserStore.new("https://sandbox.evernote.com/edam/user", {}) + +  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) +  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") +  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") +  end + +  it "raises an exception if no username is set" do +    thrift_client_opts = {} +    @opts.delete(:username) +    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") +  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")    end -   -  # opts = { -  #   :consumer_key => "mykey", -  #   :consumer_secret => "abcdefg123456", -  #   :username => "username", -  #   :password => "password" -  # }  end | 
