vkontakte_api 1.1 → 1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,11 +2,11 @@ require 'spec_helper'
2
2
 
3
3
  describe VkontakteApi::API do
4
4
  def create_connection
5
- @result = {'response' => {'key' => 'value'}}
5
+ @result = { 'response' => { 'key' => 'value' } }
6
6
 
7
7
  @connection = Faraday.new do |builder|
8
8
  builder.response :mashify
9
- builder.response :oj, :preserve_raw => true
9
+ builder.response :oj, preserve_raw: true
10
10
  builder.adapter :test do |stub|
11
11
  stub.post('/apiMethod') do
12
12
  [200, {}, Oj.dump(@result)]
@@ -23,8 +23,8 @@ describe VkontakteApi::API do
23
23
 
24
24
  context "called with a token parameter" do
25
25
  it "sends it to .connection" do
26
- subject.should_receive(:connection).with(:url => VkontakteApi::API::URL_PREFIX, :token => 'token')
27
- subject.call('apiMethod', {:some => :params}, 'token')
26
+ subject.should_receive(:connection).with(url: VkontakteApi::API::URL_PREFIX, token: 'token')
27
+ subject.call('apiMethod', { some: :params }, 'token')
28
28
  end
29
29
  end
30
30
 
@@ -33,10 +33,10 @@ describe VkontakteApi::API do
33
33
  end
34
34
 
35
35
  it "uses an HTTP verb from VkontakteApi.http_verb" do
36
- http_verb = stub("HTTP verb")
36
+ http_verb = double("HTTP verb")
37
37
  VkontakteApi.http_verb = http_verb
38
38
 
39
- response = stub("Response", :body => stub)
39
+ response = double("Response", body: double)
40
40
  @connection.should_receive(:send).with(http_verb, 'apiMethod', {}).and_return(response)
41
41
  subject.call('apiMethod')
42
42
  end
@@ -48,11 +48,11 @@ describe VkontakteApi::API do
48
48
 
49
49
  describe ".connection" do
50
50
  it "uses the :url parameter and VkontakteApi.faraday_options" do
51
- faraday_options = stub("Faraday options")
51
+ faraday_options = double("Faraday options")
52
52
  VkontakteApi.stub(:faraday_options).and_return(faraday_options)
53
- url = stub("URL")
53
+ url = double("URL")
54
54
  Faraday.should_receive(:new).with(url, faraday_options)
55
- connection = subject.connection(:url => url)
55
+ connection = subject.connection(url: url)
56
56
  end
57
57
 
58
58
  context "without a token" do
@@ -64,11 +64,11 @@ describe VkontakteApi::API do
64
64
 
65
65
  context "with a token" do
66
66
  before(:each) do
67
- @token = stub("Token")
67
+ @token = double("Token")
68
68
  end
69
69
 
70
70
  it "creates a connection with an oauth2 middleware" do
71
- connection = subject.connection(:token => @token)
71
+ connection = subject.connection(token: @token)
72
72
  handler = connection.builder.handlers.first
73
73
  handler.name.should == 'FaradayMiddleware::OAuth2'
74
74
  handler.instance_variable_get(:@args).should == [@token]
@@ -2,21 +2,21 @@ require 'spec_helper'
2
2
 
3
3
  describe VkontakteApi::Authorization do
4
4
  before(:each) do
5
- @app_id = stub("App id")
5
+ @app_id = double("App id")
6
6
  VkontakteApi.stub(:app_id).and_return(@app_id)
7
- @app_secret = stub("App secret")
7
+ @app_secret = double("App secret")
8
8
  VkontakteApi.stub(:app_secret).and_return(@app_secret)
9
- @redirect_uri = stub("Redirect uri")
9
+ @redirect_uri = double("Redirect uri")
10
10
  VkontakteApi.stub(:redirect_uri).and_return(@redirect_uri)
11
11
 
12
- @url = stub("Authorization url")
13
- @token = stub("Token")
12
+ @url = double("Authorization url")
13
+ @token = double("Token")
14
14
 
15
- @auth_code = stub("Authorization code strategy", :get_token => @token, :authorize_url => @url)
16
- @implicit = stub("Implicit strategy", :authorize_url => @url)
17
- @client_credentials = stub("Client credentials strategy", :get_token => @token)
15
+ @auth_code = double("Authorization code strategy", get_token: @token, authorize_url: @url)
16
+ @implicit = double("Implicit strategy", authorize_url: @url)
17
+ @client_credentials = double("Client credentials strategy", get_token: @token)
18
18
 
19
- @client = stub("OAuth2::Client instance", :auth_code => @auth_code, :implicit => @implicit, :client_credentials => @client_credentials)
19
+ @client = double("OAuth2::Client instance", auth_code: @auth_code, implicit: @implicit, client_credentials: @client_credentials)
20
20
  OAuth2::Client.stub(:new).and_return(@client)
21
21
 
22
22
  @auth = Object.new
@@ -30,34 +30,34 @@ describe VkontakteApi::Authorization do
30
30
 
31
31
  context "with a site type" do
32
32
  it "returns a valid authorization url" do
33
- @auth_code.should_receive(:authorize_url).with(:redirect_uri => @redirect_uri)
34
- @auth.authorization_url(:type => :site).should == @url
33
+ @auth_code.should_receive(:authorize_url).with(redirect_uri: @redirect_uri)
34
+ @auth.authorization_url(type: :site).should == @url
35
35
  end
36
36
  end
37
37
 
38
38
  context "with a client type" do
39
39
  it "returns a valid authorization url" do
40
- @implicit.should_receive(:authorize_url).with(:redirect_uri => @redirect_uri)
41
- @auth.authorization_url(:type => :client).should == @url
40
+ @implicit.should_receive(:authorize_url).with(redirect_uri: @redirect_uri)
41
+ @auth.authorization_url(type: :client).should == @url
42
42
  end
43
43
  end
44
44
 
45
45
  context "given a redirect_uri" do
46
46
  it "prefers the given uri over VkontakteApi.redirect_uri" do
47
47
  redirect_uri = 'http://example.com/oauth/callback'
48
- @auth_code.should_receive(:authorize_url).with(:redirect_uri => redirect_uri)
49
- @auth.authorization_url(:redirect_uri => redirect_uri)
48
+ @auth_code.should_receive(:authorize_url).with(redirect_uri: redirect_uri)
49
+ @auth.authorization_url(redirect_uri: redirect_uri)
50
50
  end
51
51
  end
52
52
 
53
53
  context "given a scope" do
54
54
  it "sends it to VkontakteApi::Utils.flatten_argument" do
55
- scope = stub("Scope")
56
- flat_scope = stub("Flat scope")
55
+ scope = double("Scope")
56
+ flat_scope = double("Flat scope")
57
57
 
58
58
  VkontakteApi::Utils.should_receive(:flatten_argument).with(scope).and_return(flat_scope)
59
- @auth_code.should_receive(:authorize_url).with(:redirect_uri => @redirect_uri, :scope => flat_scope)
60
- @auth.authorization_url(:scope => scope)
59
+ @auth_code.should_receive(:authorize_url).with(redirect_uri: @redirect_uri, scope: flat_scope)
60
+ @auth.authorization_url(scope: scope)
61
61
  end
62
62
  end
63
63
  end
@@ -65,33 +65,33 @@ describe VkontakteApi::Authorization do
65
65
  describe "#authorize" do
66
66
  context "with a site type" do
67
67
  before(:each) do
68
- @code = stub("Authorization code")
68
+ @code = double("Authorization code")
69
69
  @auth_code.stub(:get_token).and_return(@token)
70
70
  end
71
71
 
72
72
  it "gets the token" do
73
- @auth_code.should_receive(:get_token).with(@code, {:redirect_uri => @redirect_uri})
74
- @auth.authorize(:type => :site, :code => @code)
73
+ @auth_code.should_receive(:get_token).with(@code, redirect_uri: @redirect_uri)
74
+ @auth.authorize(type: :site, code: @code)
75
75
  end
76
76
  end
77
77
 
78
78
  context "with an app_server type" do
79
79
  it "gets the token" do
80
- @client_credentials.should_receive(:get_token).with({:redirect_uri => @redirect_uri}, subject::OPTIONS[:client_credentials])
81
- @auth.authorize(:type => :app_server)
80
+ @client_credentials.should_receive(:get_token).with({ redirect_uri: @redirect_uri }, subject::OPTIONS[:client_credentials])
81
+ @auth.authorize(type: :app_server)
82
82
  end
83
83
  end
84
84
 
85
85
  context "with an unknown type" do
86
86
  it "raises an ArgumentError" do
87
87
  expect {
88
- @auth.authorize(:type => :unknown)
88
+ @auth.authorize(type: :unknown)
89
89
  }.to raise_error(ArgumentError)
90
90
  end
91
91
  end
92
92
 
93
93
  it "builds a VkontakteApi::Client instance with the received token" do
94
- client = stub("VkontakteApi::Client instance")
94
+ client = double("VkontakteApi::Client instance")
95
95
  VkontakteApi::Client.should_receive(:new).with(@token).and_return(client)
96
96
  @auth.authorize.should == client
97
97
  end
@@ -2,11 +2,11 @@ require 'spec_helper'
2
2
 
3
3
  describe VkontakteApi::Client do
4
4
  before(:each) do
5
- @user_id = stub("User id")
6
- @string_token = stub("Access token as a String")
5
+ @user_id = double("User id")
6
+ @string_token = double("Access token as a String")
7
7
  @expires_at = Time.now - 2 * 60 * 60 # 2.hours.ago
8
8
 
9
- @oauth2_token = stub("Access token as an OAuth2::AccessToken")
9
+ @oauth2_token = double("Access token as an OAuth2::AccessToken")
10
10
  @oauth2_token.stub(:token).and_return(@string_token)
11
11
  @oauth2_token.stub(:params).and_return('user_id' => @user_id)
12
12
  @oauth2_token.stub(:expires_at).and_return(@expires_at)
@@ -3,20 +3,20 @@ require 'spec_helper'
3
3
  describe VkontakteApi::Error do
4
4
  before(:each) do
5
5
  @error_data = Hashie::Mash.new(
6
- :error_code => 5,
7
- :error_msg => 'User authorization failed: invalid access_token.',
8
- :request_params => [
6
+ error_code: 5,
7
+ error_msg: 'User authorization failed: invalid access_token.',
8
+ request_params: [
9
9
  {
10
- :key => 'oauth',
11
- :value => '1'
10
+ key: 'oauth',
11
+ value: '1'
12
12
  },
13
13
  {
14
- :key => 'method',
15
- :value => 'unknownMethod'
14
+ key: 'method',
15
+ value: 'unknownMethod'
16
16
  },
17
17
  {
18
- :key => 'access_token',
19
- :value => '123'
18
+ key: 'access_token',
19
+ value: '123'
20
20
  }
21
21
  ]
22
22
  )
@@ -40,7 +40,7 @@ describe VkontakteApi::Error do
40
40
 
41
41
  context "with parameters" do
42
42
  before(:each) do
43
- @error_data[:request_params] << Hashie::Mash.new(:key => 'some', :value => 'params')
43
+ @error_data[:request_params] << Hashie::Mash.new(key: 'some', value: 'params')
44
44
  @e = VkontakteApi::Error.new(@error_data)
45
45
  end
46
46
 
@@ -5,11 +5,11 @@ describe VkontakteApi::Logger do
5
5
  @success_response = Oj.dump('a' => 1, 'b' => 2)
6
6
  @fail_response = Oj.dump('error' => 404)
7
7
 
8
- @connection = Faraday.new(:url => 'http://example.com') do |builder|
8
+ @connection = Faraday.new(url: 'http://example.com') do |builder|
9
9
  builder.request :url_encoded
10
10
  builder.response :vk_logger
11
11
  builder.response :mashify
12
- builder.response :oj, :preserve_raw => true
12
+ builder.response :oj, preserve_raw: true
13
13
 
14
14
  builder.adapter :test do |stub|
15
15
  stub.get('/success') do
@@ -24,7 +24,7 @@ describe VkontakteApi::Logger do
24
24
  end
25
25
  end
26
26
 
27
- @logger = stub("Logger").as_null_object
27
+ @logger = double("Logger").as_null_object
28
28
  VkontakteApi.logger = @logger
29
29
 
30
30
  VkontakteApi.log_requests = false
@@ -46,7 +46,7 @@ describe VkontakteApi::Logger do
46
46
  it "logs the request URL and the request body" do
47
47
  @logger.should_receive(:debug).with('POST http://example.com/success')
48
48
  @logger.should_receive(:debug).with('body: "param=1"')
49
- @connection.post('/success', :param => 1)
49
+ @connection.post('/success', param: 1)
50
50
  end
51
51
  end
52
52
  end
@@ -3,9 +3,9 @@ require 'spec_helper'
3
3
  describe VkontakteApi::Method do
4
4
  describe "#call" do
5
5
  before(:each) do
6
- @full_name = stub("Full method name")
7
- @args = stub("Method arguments")
8
- @token = stub("Access token")
6
+ @full_name = double("Full method name")
7
+ @args = double("Method arguments")
8
+ @token = double("Access token")
9
9
 
10
10
  @method = VkontakteApi::Method.new('some_name')
11
11
  @method.stub(:full_name).and_return(@full_name)
@@ -19,9 +19,9 @@ describe VkontakteApi::Method do
19
19
  end
20
20
 
21
21
  it "sends the response to Result.process" do
22
- response = stub("VK response")
22
+ response = double("VK response")
23
23
  VkontakteApi::API.stub(:call).and_return(response)
24
- type = stub("Type")
24
+ type = double("Type")
25
25
  @method.stub(:type).and_return(type)
26
26
 
27
27
  VkontakteApi::Result.should_receive(:process).with(response, type, nil)
@@ -31,9 +31,9 @@ describe VkontakteApi::Method do
31
31
 
32
32
  describe "#full_name" do
33
33
  before(:each) do
34
- resolver = Hashie::Mash.new(:name => 'name_space')
34
+ resolver = Hashie::Mash.new(name: 'name_space')
35
35
  @name = 'name'
36
- @method = VkontakteApi::Method.new(@name, :resolver => resolver)
36
+ @method = VkontakteApi::Method.new(@name, resolver: resolver)
37
37
  end
38
38
 
39
39
  it "sends each part to #camelize" do
@@ -9,11 +9,11 @@ describe VkontakteApi::Resolvable do
9
9
 
10
10
  describe "#initialize" do
11
11
  it "should save name and resolver" do
12
- name = stub("Name")
13
- token = stub("Token")
14
- resolver = Hashie::Mash.new(:token => token)
12
+ name = double("Name")
13
+ token = double("Token")
14
+ resolver = Hashie::Mash.new(token: token)
15
15
 
16
- resolvable = @class.new(name, :resolver => resolver)
16
+ resolvable = @class.new(name, resolver: resolver)
17
17
  resolvable.name.should == name
18
18
  resolvable.token.should == token
19
19
  end
@@ -14,7 +14,7 @@ describe VkontakteApi::Resolver do
14
14
  describe "#method_missing" do
15
15
  before(:each) do
16
16
  @resolver = @class.new(:trololo)
17
- @token = stub("Token")
17
+ @token = double("Token")
18
18
  @resolver.stub(:token).and_return(@token)
19
19
  end
20
20
 
@@ -27,28 +27,42 @@ describe VkontakteApi::Resolver do
27
27
 
28
28
  context "called with a method" do
29
29
  before(:each) do
30
- @result = stub("Result")
31
- @method = stub("Method", :call => @result)
30
+ @result = double("Result")
31
+ @method = double("Method", call: @result)
32
32
  VkontakteApi::Method.stub(:new).and_return(@method)
33
33
  end
34
34
 
35
35
  it "creates a Method instance" do
36
- VkontakteApi::Method.should_receive(:new).with('get', :resolver => @resolver.resolver)
37
- @resolver.get(:id => 1)
36
+ VkontakteApi::Method.should_receive(:new).with('get', resolver: @resolver.resolver)
37
+ @resolver.get(id: 1)
38
38
  end
39
39
 
40
40
  it "calls Method#call and returns the result" do
41
- @method.should_receive(:call).with(:id => 1)
42
- @resolver.get(:id => 1).should == @result
41
+ @method.should_receive(:call).with(id: 1)
42
+ @resolver.get(id: 1).should == @result
43
43
  end
44
44
  end
45
45
  end
46
46
 
47
+ describe "#send" do
48
+ before(:each) do
49
+ @resolver = @class.new('trololo')
50
+ @token = double("Token")
51
+ @resolver.stub(:token).and_return(@token)
52
+ end
53
+
54
+ it "gets into #method_missing" do
55
+ method = double("Method", call: nil)
56
+ VkontakteApi::Method.should_receive(:new).with('send', resolver: @resolver.resolver).and_return(method)
57
+ @resolver.send(message: 'hello')
58
+ end
59
+ end
60
+
47
61
  describe "#resolver" do
48
62
  before(:each) do
49
- @name = stub("Name")
63
+ @name = double("Name")
50
64
  @resolver = @class.new(@name)
51
- @token = stub("Token")
65
+ @token = double("Token")
52
66
  @resolver.stub(:token).and_return(@token)
53
67
  end
54
68
 
@@ -59,7 +73,7 @@ describe VkontakteApi::Resolver do
59
73
  end
60
74
 
61
75
  it "caches the result" do
62
- @mash = stub("Mash", :name => @name, :token => @token)
76
+ @mash = double("Mash", name: @name, token: @token)
63
77
  Hashie::Mash.should_receive(:new).once.and_return(@mash)
64
78
  5.times { @resolver.resolver }
65
79
  end
@@ -72,9 +86,9 @@ describe VkontakteApi::Resolver do
72
86
 
73
87
  context "on first call" do
74
88
  it "loads namespaces from a file" do
75
- filename = stub("Filename")
89
+ filename = double("Filename")
76
90
  File.should_receive(:expand_path).and_return(filename)
77
- namespaces = stub("Namespaces list")
91
+ namespaces = double("Namespaces list")
78
92
  YAML.should_receive(:load_file).with(filename).and_return(namespaces)
79
93
 
80
94
  VkontakteApi::Resolver.namespaces
@@ -3,8 +3,8 @@ require 'spec_helper'
3
3
  describe VkontakteApi::Result do
4
4
  describe ".process" do
5
5
  before(:each) do
6
- @response = stub("Response")
7
- @result = stub("Result")
6
+ @response = double("Response")
7
+ @result = double("Result")
8
8
  subject.stub(:extract_result).and_return(@result)
9
9
  end
10
10
 
@@ -15,8 +15,8 @@ describe VkontakteApi::Result do
15
15
 
16
16
  context "with a non-enumerable result" do
17
17
  before(:each) do
18
- @type = stub("Type")
19
- @typecasted_value = stub("Typecasted value")
18
+ @type = double("Type")
19
+ @typecasted_value = double("Typecasted value")
20
20
  subject.stub(:typecast).and_return(@typecasted_value)
21
21
  end
22
22
 
@@ -27,7 +27,7 @@ describe VkontakteApi::Result do
27
27
 
28
28
  context "when block_given?" do
29
29
  it "yields the #typecast-ed value and returns the result of the block" do
30
- block_result = stub("Block result")
30
+ block_result = double("Block result")
31
31
  @typecasted_value.should_receive(:result_method).and_return(block_result)
32
32
  block = proc(&:result_method)
33
33
 
@@ -38,8 +38,8 @@ describe VkontakteApi::Result do
38
38
 
39
39
  context "with an enumerable result" do
40
40
  before(:each) do
41
- @element1 = stub("First element")
42
- @element2 = stub("Second element")
41
+ @element1 = double("First element")
42
+ @element2 = double("Second element")
43
43
  @enumerable_result = [@element1, @element2]
44
44
  subject.stub(:extract_result).and_return(@enumerable_result)
45
45
  end
@@ -50,8 +50,8 @@ describe VkontakteApi::Result do
50
50
 
51
51
  context "when block_given?" do
52
52
  it "yields each element untouched to the block" do
53
- result1 = stub("First element after result_method")
54
- result2 = stub("Second element after result_method")
53
+ result1 = double("First element after result_method")
54
+ result2 = double("Second element after result_method")
55
55
  @element1.should_receive(:result_method).and_return(result1)
56
56
  @element2.should_receive(:result_method).and_return(result2)
57
57
  block = proc(&:result_method)
@@ -64,13 +64,13 @@ describe VkontakteApi::Result do
64
64
 
65
65
  describe ".extract_result" do
66
66
  before(:each) do
67
- @result_response = {'key' => 'value'}
68
- @result_error = {'request_params' => [{'key' => 'error', 'value' => 'description'}]}
67
+ @result_response = { 'key' => 'value' }
68
+ @result_error = { 'request_params' => [{ 'key' => 'error', 'value' => 'description' }] }
69
69
  end
70
70
 
71
71
  context "with a successful response" do
72
72
  before(:each) do
73
- @result = Hashie::Mash.new(:response => @result_response)
73
+ @result = Hashie::Mash.new(response: @result_response)
74
74
  end
75
75
 
76
76
  it "returns the response part" do
@@ -80,7 +80,7 @@ describe VkontakteApi::Result do
80
80
 
81
81
  context "with an error response" do
82
82
  before(:each) do
83
- @result = Hashie::Mash.new(:error => @result_error)
83
+ @result = Hashie::Mash.new(error: @result_error)
84
84
  end
85
85
 
86
86
  it "raises a VkontakteApi::Error" do