summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/evernote.rb3
-rw-r--r--lib/evernote/user_store.rb16
-rw-r--r--spec/evernote/user_store_spec.rb53
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