supercamp 0.0.1
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 +7 -0
- data/.gitignore +16 -0
- data/.rspec +1 -0
- data/.rvmrc +53 -0
- data/Gemfile +4 -0
- data/Guardfile +16 -0
- data/LICENSE.txt +22 -0
- data/README.md +31 -0
- data/Rakefile +10 -0
- data/lib/supercamp/configuration.rb +22 -0
- data/lib/supercamp/criteria/abstract.rb +53 -0
- data/lib/supercamp/criteria/campground.rb +87 -0
- data/lib/supercamp/criteria/campsite.rb +99 -0
- data/lib/supercamp/criteria/detail.rb +31 -0
- data/lib/supercamp/error.rb +18 -0
- data/lib/supercamp/response.rb +41 -0
- data/lib/supercamp/version.rb +3 -0
- data/lib/supercamp.rb +35 -0
- data/spec/spec_helper.rb +22 -0
- data/spec/supercamp/configuration_spec.rb +59 -0
- data/spec/supercamp/criteria/abstract_spec.rb +177 -0
- data/spec/supercamp/criteria/campground_spec.rb +138 -0
- data/spec/supercamp/criteria/campsite_spec.rb +109 -0
- data/spec/supercamp/criteria/detail_spec.rb +50 -0
- data/spec/supercamp/error_spec.rb +47 -0
- data/spec/supercamp/response_spec.rb +55 -0
- data/spec/supercamp_spec.rb +48 -0
- data/spec/vcr_cassettes/campground_ca_tent.yml +546 -0
- data/spec/vcr_cassettes/campground_no_api_key.yml +38 -0
- data/spec/vcr_cassettes/error_403_forbidden.yml +38 -0
- data/spec/vcr_cassettes/response_of_limited_campground_search.yml +71 -0
- data/supercamp.gemspec +31 -0
- metadata +214 -0
@@ -0,0 +1,177 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Supercamp::Criteria::Abstract do
|
4
|
+
|
5
|
+
describe ".search" do
|
6
|
+
|
7
|
+
context "Supercamp::Criteria::Campground" do
|
8
|
+
|
9
|
+
it "returns a Supercamp::Criteria" do
|
10
|
+
expect(Supercamp::Criteria::Campground.search {}).to be_instance_of Supercamp::Criteria::Campground
|
11
|
+
end
|
12
|
+
|
13
|
+
context "w/ supplied options" do
|
14
|
+
|
15
|
+
let :criteria do
|
16
|
+
Supercamp::Criteria::Campground.search do
|
17
|
+
name "Camp Cool"
|
18
|
+
has :pets
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
it "please?" do
|
23
|
+
expect(criteria.options).to eq \
|
24
|
+
({ "pname" => "Camp Cool", "pets" => 3010 })
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
describe "#options" do
|
35
|
+
|
36
|
+
it { expect(subject.options).to eq ({}) }
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
describe "#search" do
|
42
|
+
|
43
|
+
context "Supercamp::Criteria::Campground" do
|
44
|
+
|
45
|
+
subject { Supercamp::Criteria::Campground.new }
|
46
|
+
|
47
|
+
it "returns a Supercamp::Criteria" do
|
48
|
+
expect(subject.search {}).to be_instance_of Supercamp::Criteria::Campground
|
49
|
+
end
|
50
|
+
|
51
|
+
context "w/ supplied options" do
|
52
|
+
|
53
|
+
let :criteria do
|
54
|
+
subject.search do
|
55
|
+
name "Camp Cool"
|
56
|
+
has :pets
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
it "please?" do
|
61
|
+
expect(criteria.options).to eq \
|
62
|
+
({ "pname" => "Camp Cool", "pets" => 3010 })
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
describe "#endpoint" do
|
72
|
+
it { expect(subject.endpoint).to eq "http://api.amp.active.com/camping/abstracts" }
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
describe "#query" do
|
77
|
+
|
78
|
+
before do
|
79
|
+
expect(Supercamp.config).to receive(:api_key).and_return "z"
|
80
|
+
end
|
81
|
+
|
82
|
+
let :base_url do
|
83
|
+
"http://api.amp.active.com/camping/abstracts?api_key=z"
|
84
|
+
end
|
85
|
+
|
86
|
+
context "w/ valid single Supercamp::Criteria" do
|
87
|
+
|
88
|
+
let :criteria do
|
89
|
+
subject.tap do |s|
|
90
|
+
s.options = { pname: "Jolly Good" }
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
it "creates a Typhoeus::Request" do
|
95
|
+
expect(criteria.query).to be_instance_of Typhoeus::Request
|
96
|
+
end
|
97
|
+
|
98
|
+
it "combines options w/ endpoint" do
|
99
|
+
expect(criteria.query.url).to eq \
|
100
|
+
"#{base_url}&pname=Jolly%20Good"
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
context "w/ valid multi Supercamp::Criteria" do
|
106
|
+
|
107
|
+
let :criteria do
|
108
|
+
subject.tap do |s|
|
109
|
+
s.options = { pname: "Jolly Good", amenity: 4001, water: 3007, pets: 3010 }
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
it "combines options w/ endpoint" do
|
114
|
+
expect(criteria.query.url).to eq \
|
115
|
+
"#{base_url}&pname=Jolly%20Good&amenity=4001&water=3007&pets=3010"
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
context "w/ special characters in Supercamp::Criteria" do
|
121
|
+
|
122
|
+
let :criteria do
|
123
|
+
subject.tap do |s|
|
124
|
+
s.options = { pname: "$$%So**??Bad" }
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
it "combines options w/ endpoint" do
|
129
|
+
expect(criteria.query.url).to eq \
|
130
|
+
"#{base_url}&pname=%24%24%25So%2A%2A%3F%3FBad"
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
135
|
+
|
136
|
+
|
137
|
+
describe "#response" do
|
138
|
+
|
139
|
+
context "w/ valid response" do
|
140
|
+
|
141
|
+
subject do
|
142
|
+
Supercamp::Criteria::Campground.search do
|
143
|
+
state "CA"
|
144
|
+
site_type "tent"
|
145
|
+
people 4
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
it "returns a Supercamp::Response" do
|
150
|
+
VCR.use_cassette("campground ca tent") do
|
151
|
+
expect(subject.response).to be_instance_of Supercamp::Response
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
end
|
156
|
+
|
157
|
+
context "w/ invalid response" do
|
158
|
+
|
159
|
+
before do
|
160
|
+
expect(Supercamp.config).to receive(:api_key).and_return nil
|
161
|
+
end
|
162
|
+
|
163
|
+
subject do
|
164
|
+
Supercamp.campgrounds.search.state("CA")
|
165
|
+
end
|
166
|
+
|
167
|
+
it "returns a Supercamp::Error" do
|
168
|
+
VCR.use_cassette("campground no api key") do
|
169
|
+
expect { subject.response }.to raise_error Supercamp::Error
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
end
|
174
|
+
|
175
|
+
end
|
176
|
+
|
177
|
+
end
|
@@ -0,0 +1,138 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Supercamp::Criteria::Campground do
|
4
|
+
|
5
|
+
let :criteria do
|
6
|
+
Supercamp::Criteria::Campground.new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "#endpoint" do
|
10
|
+
|
11
|
+
it do
|
12
|
+
expect(criteria.endpoint).to eq \
|
13
|
+
"http://api.amp.active.com/camping/campgrounds"
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
describe "#geo" do
|
20
|
+
|
21
|
+
it "returns Supercamp::Criteria::Campground" do
|
22
|
+
expect(criteria.geo(1, 2)).to be_instance_of Supercamp::Criteria::Campground
|
23
|
+
end
|
24
|
+
|
25
|
+
it "sets :landmarkLat & :landmarkLong" do
|
26
|
+
expect {
|
27
|
+
criteria.geo(1, 2)
|
28
|
+
}.to change(criteria, :options).from({}).to({ "landmarkLat" => 1, "landmarkLong" => 2 })
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
describe "#state" do
|
35
|
+
|
36
|
+
it "returns Supercamp::Criteria::Campground" do
|
37
|
+
expect(criteria.state("CA")).to be_instance_of Supercamp::Criteria::Campground
|
38
|
+
end
|
39
|
+
|
40
|
+
it "sets :pstate option" do
|
41
|
+
expect {
|
42
|
+
criteria.state("CA")
|
43
|
+
}.to change(criteria, :options).from({}).to({ "pstate" => "CA" })
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
describe "#name" do
|
50
|
+
|
51
|
+
it "returns Supercamp::Criteria::Campground" do
|
52
|
+
expect(criteria.name("San Francisco")).to be_instance_of Supercamp::Criteria::Campground
|
53
|
+
end
|
54
|
+
|
55
|
+
it "sets :pname option" do
|
56
|
+
expect {
|
57
|
+
criteria.name("San Francisco")
|
58
|
+
}.to change(criteria, :options).from({}).to({ "pname" => "San Francisco" })
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
describe "#amenity" do
|
66
|
+
|
67
|
+
it "returns Supercamp::Criteria::Campground" do
|
68
|
+
expect(criteria.amenity(:biking)).to be_instance_of Supercamp::Criteria::Campground
|
69
|
+
end
|
70
|
+
|
71
|
+
it "sets :amenity option with code translation" do
|
72
|
+
expect {
|
73
|
+
criteria.amenity(:biking)
|
74
|
+
}.to change(criteria, :options).from({}).to({ "amenity" => 4001 })
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
describe "#has" do
|
81
|
+
|
82
|
+
context "w/ no perk" do
|
83
|
+
|
84
|
+
it "returns Supercamp::Criteria::Campground" do
|
85
|
+
expect(criteria.has).to be_instance_of Supercamp::Criteria::Campground
|
86
|
+
end
|
87
|
+
|
88
|
+
it "sets no options" do
|
89
|
+
expect {
|
90
|
+
criteria.has
|
91
|
+
}.to_not change(criteria, :options).from({})
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
95
|
+
|
96
|
+
context "w/ no valid perks" do
|
97
|
+
|
98
|
+
it "sets no options" do
|
99
|
+
expect {
|
100
|
+
criteria.has(:boogers)
|
101
|
+
}.to_not change(criteria, :options).from({})
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
|
106
|
+
context "w/ a single perk" do
|
107
|
+
|
108
|
+
it "sets 'waterfront' options" do
|
109
|
+
expect {
|
110
|
+
criteria.has(:waterfront)
|
111
|
+
}.to change(criteria, :options).from({}).to({ "waterfront" => 3011 })
|
112
|
+
end
|
113
|
+
|
114
|
+
end
|
115
|
+
|
116
|
+
context "w/ multiple valid perks" do
|
117
|
+
|
118
|
+
it "sets 'waterfront' & 'pets' options" do
|
119
|
+
expect {
|
120
|
+
criteria.has(:waterfront, :pets)
|
121
|
+
}.to change(criteria, :options).from({}).to({ "waterfront" => 3011, "pets" => 3010 })
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|
125
|
+
|
126
|
+
context "w/ multiple valid and invalid perks" do
|
127
|
+
|
128
|
+
it "sets 'waterfront' & 'pets' options" do
|
129
|
+
expect {
|
130
|
+
criteria.has(:pets, :cats)
|
131
|
+
}.to change(criteria, :options).from({}).to({ "pets" => 3010 })
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
135
|
+
|
136
|
+
end
|
137
|
+
|
138
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Supercamp::Criteria::Campsite do
|
4
|
+
|
5
|
+
let :criteria do
|
6
|
+
Supercamp::Criteria::Campsite.new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "#endpoint" do
|
10
|
+
|
11
|
+
it do
|
12
|
+
expect(criteria.endpoint).to eq \
|
13
|
+
"http://api.amp.active.com/camping/campsites"
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
describe "#site_type" do
|
20
|
+
|
21
|
+
it "returns Supercamp::Criteria::Campsite" do
|
22
|
+
expect(criteria.site_type(:rv)).to be_instance_of Supercamp::Criteria::Campsite
|
23
|
+
end
|
24
|
+
|
25
|
+
it "sets :siteType option with code translation" do
|
26
|
+
expect {
|
27
|
+
criteria.site_type(:rv)
|
28
|
+
}.to change(criteria, :options).from({}).to({ "siteType" => 2001 })
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
describe "#arrival" do
|
35
|
+
|
36
|
+
it "returns Supercamp::Criteria::Campsite" do
|
37
|
+
expect(criteria.arrival("05/08/1981")).to be_instance_of Supercamp::Criteria::Campsite
|
38
|
+
end
|
39
|
+
|
40
|
+
it "sets :arvdate option" do
|
41
|
+
expect {
|
42
|
+
criteria.arrival("05/08/1981")
|
43
|
+
}.to change(criteria, :options).from({}).to({ "arvdate" => "05/08/1981" })
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
describe "#nights" do
|
50
|
+
|
51
|
+
it "returns Supercamp::Criteria::Campsite" do
|
52
|
+
expect(criteria.nights(2)).to be_instance_of Supercamp::Criteria::Campsite
|
53
|
+
end
|
54
|
+
|
55
|
+
it "sets :lengthOfStay option" do
|
56
|
+
expect {
|
57
|
+
criteria.nights(2)
|
58
|
+
}.to change(criteria, :options).from({}).to({ "lengthOfStay" => 2 })
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
describe "#min_equip_length" do
|
65
|
+
|
66
|
+
it "returns Supercamp::Criteria::Campsite" do
|
67
|
+
expect(criteria.min_equip_length(1)).to be_instance_of Supercamp::Criteria::Campsite
|
68
|
+
end
|
69
|
+
|
70
|
+
it "sets :eqplen option with amount" do
|
71
|
+
expect {
|
72
|
+
criteria.min_equip_length(61)
|
73
|
+
}.to change(criteria, :options).from({}).to({ "eqplen" => 61 })
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
|
79
|
+
describe "#people" do
|
80
|
+
|
81
|
+
it "returns Supercamp::Criteria::Campsite" do
|
82
|
+
expect(criteria.people(15)).to be_instance_of Supercamp::Criteria::Campsite
|
83
|
+
end
|
84
|
+
|
85
|
+
it "sets :people option with amount" do
|
86
|
+
expect {
|
87
|
+
criteria.people(66)
|
88
|
+
}.to change(criteria, :options).from({}).to({ "Maxpeople" => 66 })
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
|
94
|
+
describe "#min_elec_amps" do
|
95
|
+
|
96
|
+
it "returns Supercamp::Criteria::Campsite" do
|
97
|
+
expect(criteria.min_elec_amps(15)).to be_instance_of Supercamp::Criteria::Campsite
|
98
|
+
end
|
99
|
+
|
100
|
+
it "sets :hookup option with code translation" do
|
101
|
+
expect {
|
102
|
+
criteria.min_elec_amps(15)
|
103
|
+
}.to change(criteria, :options).from({}).to({ "hookup" => 3002 })
|
104
|
+
end
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
|
109
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Supercamp::Criteria::Detail do
|
4
|
+
|
5
|
+
let :criteria do
|
6
|
+
Supercamp::Criteria::Detail.new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "#endpoint" do
|
10
|
+
|
11
|
+
it do
|
12
|
+
expect(criteria.endpoint).to eq \
|
13
|
+
"http://api.amp.active.com/camping/details"
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
describe "#contract_code" do
|
20
|
+
|
21
|
+
it "returns Supercamp::Criteria::Detail" do
|
22
|
+
expect(criteria.contract_code("yep")).to \
|
23
|
+
be_instance_of Supercamp::Criteria::Detail
|
24
|
+
end
|
25
|
+
|
26
|
+
it "sets contractCode option" do
|
27
|
+
expect {
|
28
|
+
criteria.contract_code("CA")
|
29
|
+
}.to change(criteria, :options).from({}).to({ "contractCode" => "CA" })
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
describe "#id" do
|
36
|
+
|
37
|
+
it "returns Supercamp::Criteria::Detail" do
|
38
|
+
expect(criteria.id("yep")).to \
|
39
|
+
be_instance_of Supercamp::Criteria::Detail
|
40
|
+
end
|
41
|
+
|
42
|
+
it "sets :parkId option" do
|
43
|
+
expect {
|
44
|
+
criteria.id("11")
|
45
|
+
}.to change(criteria, :options).from({}).to({ "parkId" => "11" })
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Supercamp::Error do
|
4
|
+
|
5
|
+
describe ".new" do
|
6
|
+
|
7
|
+
context "403 - Forbidden" do
|
8
|
+
|
9
|
+
before do
|
10
|
+
expect(Supercamp.config).to receive(:api_key).and_return nil
|
11
|
+
end
|
12
|
+
|
13
|
+
around(:each) do |example|
|
14
|
+
VCR.use_cassette "error 403 forbidden" do
|
15
|
+
example.run
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
let :criteria do
|
20
|
+
Supercamp.campsites.site_type("rv")
|
21
|
+
end
|
22
|
+
|
23
|
+
subject do
|
24
|
+
Supercamp::Error.new criteria, criteria.query.run
|
25
|
+
end
|
26
|
+
|
27
|
+
it "is a Supercamp::Error" do
|
28
|
+
expect(subject).to be_instance_of Supercamp::Error
|
29
|
+
end
|
30
|
+
|
31
|
+
it "sets :code" do
|
32
|
+
expect(subject.code).to eq 403
|
33
|
+
end
|
34
|
+
|
35
|
+
it "sets :api_code" do
|
36
|
+
expect(subject.api_code).to eq "ERR_403_DEVELOPER_INACTIVE"
|
37
|
+
end
|
38
|
+
|
39
|
+
it "sets :message" do
|
40
|
+
expect(subject.message).to eq "<h1>403 Developer Inactive</h1>"
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Supercamp::Response do
|
4
|
+
|
5
|
+
describe ".new" do
|
6
|
+
|
7
|
+
around(:each) do |example|
|
8
|
+
VCR.use_cassette "response of limited campground search" do
|
9
|
+
example.run
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
let :criteria do
|
14
|
+
Supercamp.campgrounds.search do
|
15
|
+
site_type "tent"
|
16
|
+
state "CA"
|
17
|
+
amenity "fishing"
|
18
|
+
has "pets", "waterfront"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
subject do
|
23
|
+
Supercamp::Response.new criteria.query.run
|
24
|
+
end
|
25
|
+
|
26
|
+
it "sets :count" do
|
27
|
+
expect(subject.count).to eq 21
|
28
|
+
end
|
29
|
+
|
30
|
+
it "sets array to :entries" do
|
31
|
+
expect(subject.entries).to be_instance_of Array
|
32
|
+
end
|
33
|
+
|
34
|
+
it "sets 21 entries" do
|
35
|
+
expect(subject.entries.size).to eq 21
|
36
|
+
end
|
37
|
+
|
38
|
+
context "first entry" do
|
39
|
+
|
40
|
+
let(:entry) { subject.entries.first }
|
41
|
+
|
42
|
+
it "sets Hashr instances" do
|
43
|
+
expect(entry).to be_instance_of Hashr
|
44
|
+
end
|
45
|
+
|
46
|
+
it "can access :facility_name" do
|
47
|
+
expect(entry.facility_name).to eq "BUSHAY RECREATION AREA"
|
48
|
+
expect(entry[:facility_name]).to eq "BUSHAY RECREATION AREA"
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Supercamp do
|
4
|
+
|
5
|
+
describe ".config" do
|
6
|
+
|
7
|
+
it "require Configuration" do
|
8
|
+
expect(Supercamp.config).to be_instance_of Supercamp::Configuration
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
describe ".configure" do
|
15
|
+
|
16
|
+
it "allows options to be set through block" do
|
17
|
+
expect(Supercamp.config).to receive(:api_key=).with("yes")
|
18
|
+
expect(Supercamp.config).to receive(:timeout=).with(10000)
|
19
|
+
Supercamp.configure do |config|
|
20
|
+
config.api_key = "yes"
|
21
|
+
config.timeout = 10000
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
describe ".campsites" do
|
29
|
+
|
30
|
+
it { expect(Supercamp.campsites).to be_instance_of Supercamp::Criteria::Campsite }
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
describe ".campgrounds" do
|
36
|
+
|
37
|
+
it { expect(Supercamp.campgrounds).to be_instance_of Supercamp::Criteria::Campground }
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
describe ".details" do
|
43
|
+
|
44
|
+
it { expect(Supercamp.details).to be_instance_of Supercamp::Criteria::Detail }
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|