brickset 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b88f8d7e145af60f0d4e3bcb38f19fe17c782061
4
- data.tar.gz: 0cc4af00d816f6fa7f1c167c1b1d0288e0a82f47
3
+ metadata.gz: b28f2e5a3d92352293fc9229b1fe0775a4698ac0
4
+ data.tar.gz: b7d9989e097ff544188ce46b1879942fd65acd89
5
5
  SHA512:
6
- metadata.gz: 700c40b0b1ec4a00bdcc0d34f306fb69442e7a218b919b71d9bfdf9ecb036aceb49b559ad75fc82f8f2b48ca17a264deffab8ae6a9b758fdbba16a5ff01cd6b4
7
- data.tar.gz: 7924de3bad44bdd02a8f24084f7c04362119cb7e046e2a5c9d9e578de4539a86c14968a8b50e180f8a21bf457be6ad56d820110878f80fc79395adb3d2d1370d
6
+ metadata.gz: ae581ede7b2f000cdc2c0a7cb349a6188f096265b5751cd7ff4fbea58bc3c010ff604ed55fe9882ac7fef4dc80efb15d9ad6f0dd52c458c7b4c440e5af933ed2
7
+ data.tar.gz: 35b0325cbe3039fa40bf3392098b18dd441c76d92856d2a654d1821b2c2f4446b17e2f767a8e91ad977501279e1b668ce1d6b5bdc87d7456ecbbdd99da09d437
@@ -19,7 +19,7 @@ module Brickset
19
19
  end
20
20
  end
21
21
 
22
- def get_sets options
22
+ def get_sets options = {}
23
23
  required_params = [:userHash, :query, :theme, :subtheme, :setNumber, :year, :owned, :wanted, :orderBy, :pageSize, :pageNumber, :userName]
24
24
  default_options = {}
25
25
  required_params.each { |param| default_options[param] = nil }
@@ -32,7 +32,7 @@ module Brickset
32
32
  end
33
33
 
34
34
  def get_recently_updated_sets minutes_ago
35
- response = call_api :getRecentlyUpdatedSets, {minutesAgo: minutes_ago}
35
+ response = call_api :getRecentlyUpdatedSets, { minutesAgo: minutes_ago }
36
36
  if response["ArrayOfSets"].nil?
37
37
  []
38
38
  else
@@ -1,3 +1,3 @@
1
1
  module Brickset
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -1,6 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Brickset::Client do
4
+ let(:client) { Brickset::Client.new(api_key: 'api_key') }
4
5
 
5
6
  before do
6
7
  @keys = Brickset::Configuration::VALID_CONFIG_KEYS
@@ -56,4 +57,108 @@ describe Brickset::Client do
56
57
  end
57
58
  end
58
59
  end
59
- end
60
+
61
+ describe "#get_sets" do
62
+ context 'with no options' do
63
+ it "calls api with null required options" do
64
+ expect(client).to receive(:call_api).with(
65
+ :getSets,
66
+ {
67
+ userHash: nil,
68
+ query: nil,
69
+ theme: nil,
70
+ subtheme: nil,
71
+ setNumber: nil,
72
+ year: nil,
73
+ owned: nil,
74
+ wanted: nil,
75
+ orderBy: nil,
76
+ pageSize: nil,
77
+ pageNumber: nil,
78
+ userName: nil
79
+ }
80
+ ) { {} }
81
+ client.get_sets
82
+ end
83
+ context 'ArrayOfSets nil?' do
84
+ it "is empty array" do
85
+ expect(client).to receive(:call_api) { {} }
86
+ expect(client.get_sets).to eq([])
87
+ end
88
+ end
89
+ context 'ArrayOfSets has sets' do
90
+ it "returns sets results" do
91
+ expect(client).to receive(:call_api) { {"ArrayOfSets" => { "sets" => "test" } } }
92
+ expect(client.get_sets).to eq("test")
93
+ end
94
+ end
95
+ end
96
+ context 'with options' do
97
+ it "passes the options to call_api" do
98
+ expect(client).to receive(:call_api).with(
99
+ :getSets,
100
+ {
101
+ userHash: 'hash',
102
+ query: nil,
103
+ theme: nil,
104
+ subtheme: nil,
105
+ setNumber: nil,
106
+ year: nil,
107
+ owned: nil,
108
+ wanted: nil,
109
+ orderBy: nil,
110
+ pageSize: nil,
111
+ pageNumber: nil,
112
+ userName: 'name'
113
+ }
114
+ ) { {} }
115
+ client.get_sets(userHash: 'hash', userName: 'name')
116
+ end
117
+ end
118
+ end
119
+
120
+ describe "#get_recently_updated_sets" do
121
+ it "calls the api with minutesAgo param" do
122
+ expect(client).to receive(:call_api).with(:getRecentlyUpdatedSets, { minutesAgo: 2 }) { {} }
123
+ client.get_recently_updated_sets 2
124
+ end
125
+ context 'ArrayOfSets nil?' do
126
+ it "is empty array" do
127
+ expect(client).to receive(:call_api) { {} }
128
+ expect(client.get_recently_updated_sets 1).to eq([])
129
+ end
130
+ end
131
+ context 'ArrayOfSets has sets' do
132
+ it "returns sets results" do
133
+ expect(client).to receive(:call_api) { {"ArrayOfSets" => { "sets" => "test" } } }
134
+ expect(client.get_recently_updated_sets 1).to eq("test")
135
+ end
136
+ end
137
+ end
138
+
139
+ describe "#call_api" do
140
+ let(:response) { double(code: 200, parsed_response: {}, body: '')}
141
+ it "calls get using endpoint and method name" do
142
+ expect(Brickset::Client).to receive(:get).with("#{client.endpoint}/test", hash_including(:query)) { response }
143
+ client.send :call_api, :test
144
+ end
145
+ it "passes options and merges api key" do
146
+ expect(Brickset::Client).to receive(:get).with("#{client.endpoint}/test", query: { option: 'test', apiKey: 'api_key'} ) { response }
147
+ client.send :call_api, :test, { option: 'test' }
148
+ end
149
+ context 'response code == 200' do
150
+ let(:response) { double(code: 200, parsed_response: { test: 'test' }, body: '')}
151
+ it "returns parsed_response" do
152
+ expect(Brickset::Client).to receive(:get) { response }
153
+ expect(client.send :call_api, :test).to eq({test: 'test'})
154
+ end
155
+ end
156
+ context 'response code != 200' do
157
+ let(:response) { double(code: 400, parsed_response: { }, body: 'error') }
158
+ it "raises an error with body" do
159
+ expect(Brickset::Client).to receive(:get) { response }
160
+ expect { expect(client.send :call_api, :test) }.to raise_error('error')
161
+ end
162
+ end
163
+ end
164
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brickset
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - dbwinger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-08 00:00:00.000000000 Z
11
+ date: 2015-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler