brickset 0.0.2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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