diff options
| -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 |
