actv 1.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.
- data/.gitignore +30 -0
- data/.rspec +2 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +64 -0
- data/Gemfile +4 -0
- data/Guardfile +20 -0
- data/LICENSE +22 -0
- data/README.md +63 -0
- data/Rakefile +17 -0
- data/actv.gemspec +34 -0
- data/lib/actv.rb +48 -0
- data/lib/actv/address.rb +9 -0
- data/lib/actv/article.rb +89 -0
- data/lib/actv/article_search_results.rb +15 -0
- data/lib/actv/asset.rb +186 -0
- data/lib/actv/asset_channel.rb +13 -0
- data/lib/actv/asset_component.rb +8 -0
- data/lib/actv/asset_description.rb +15 -0
- data/lib/actv/asset_description_type.rb +12 -0
- data/lib/actv/asset_image.rb +13 -0
- data/lib/actv/asset_legacy_data.rb +20 -0
- data/lib/actv/asset_price.rb +11 -0
- data/lib/actv/asset_seo_url.rb +5 -0
- data/lib/actv/asset_status.rb +17 -0
- data/lib/actv/asset_tag.rb +9 -0
- data/lib/actv/asset_topic.rb +11 -0
- data/lib/actv/base.rb +148 -0
- data/lib/actv/channel.rb +13 -0
- data/lib/actv/client.rb +330 -0
- data/lib/actv/configurable.rb +39 -0
- data/lib/actv/default.rb +87 -0
- data/lib/actv/error.rb +32 -0
- data/lib/actv/error/bad_gateway.rb +11 -0
- data/lib/actv/error/bad_request.rb +10 -0
- data/lib/actv/error/client_error.rb +39 -0
- data/lib/actv/error/enhance_your_calm.rb +10 -0
- data/lib/actv/error/forbidden.rb +10 -0
- data/lib/actv/error/internal_server_error.rb +11 -0
- data/lib/actv/error/not_acceptable.rb +10 -0
- data/lib/actv/error/not_found.rb +10 -0
- data/lib/actv/error/server_error.rb +19 -0
- data/lib/actv/error/service_unavailable.rb +11 -0
- data/lib/actv/error/unauthorized.rb +10 -0
- data/lib/actv/event.rb +213 -0
- data/lib/actv/event_result.rb +8 -0
- data/lib/actv/event_search_results.rb +11 -0
- data/lib/actv/evergreen.rb +53 -0
- data/lib/actv/facet.rb +16 -0
- data/lib/actv/facet_term.rb +5 -0
- data/lib/actv/facet_value.rb +7 -0
- data/lib/actv/identity.rb +28 -0
- data/lib/actv/interest.rb +39 -0
- data/lib/actv/null_object.rb +19 -0
- data/lib/actv/phone_number.rb +9 -0
- data/lib/actv/place.rb +24 -0
- data/lib/actv/popular_interest.rb +18 -0
- data/lib/actv/popular_interest_search_results.rb +12 -0
- data/lib/actv/request/multipart_with_file.rb +37 -0
- data/lib/actv/response/parse_json.rb +29 -0
- data/lib/actv/response/raise_client_error.rb +21 -0
- data/lib/actv/response/raise_server_error.rb +18 -0
- data/lib/actv/search_results.rb +30 -0
- data/lib/actv/sub_event.rb +15 -0
- data/lib/actv/tag.rb +9 -0
- data/lib/actv/topic.rb +9 -0
- data/lib/actv/user.rb +38 -0
- data/lib/actv/version.rb +3 -0
- data/spec/actv/article_search_results_spec.rb +16 -0
- data/spec/actv/article_spec.rb +44 -0
- data/spec/actv/asset_channel_spec.rb +17 -0
- data/spec/actv/asset_description_spec.rb +17 -0
- data/spec/actv/asset_image_spec.rb +27 -0
- data/spec/actv/asset_price_spec.rb +23 -0
- data/spec/actv/asset_spec.rb +172 -0
- data/spec/actv/asset_status_spec.rb +24 -0
- data/spec/actv/base_spec.rb +51 -0
- data/spec/actv/client/articles_spec.rb +130 -0
- data/spec/actv/client/assets_spec.rb +87 -0
- data/spec/actv/client/event_results_spec.rb +35 -0
- data/spec/actv/client/events_spec.rb +99 -0
- data/spec/actv/client/search_spec.rb +58 -0
- data/spec/actv/client/system_health_spec.rb +16 -0
- data/spec/actv/client/users_spec.rb +31 -0
- data/spec/actv/client_spec.rb +140 -0
- data/spec/actv/event_spec.rb +331 -0
- data/spec/actv/evergreen_spec.rb +33 -0
- data/spec/actv/identifiable_spec.rb +31 -0
- data/spec/actv/null_object_spec.rb +24 -0
- data/spec/actv/place_spec.rb +25 -0
- data/spec/actv/search_results_spec.rb +44 -0
- data/spec/actv/user_spec.rb +25 -0
- data/spec/actv_spec.rb +60 -0
- data/spec/faraday/response_spec.rb +0 -0
- data/spec/fixtures/me.json +21 -0
- data/spec/fixtures/system_health.json +1 -0
- data/spec/fixtures/valid_article.json +187 -0
- data/spec/fixtures/valid_asset.json +185 -0
- data/spec/fixtures/valid_event.json +188 -0
- data/spec/fixtures/valid_event_results.json +23 -0
- data/spec/fixtures/valid_evergreen.json +1 -0
- data/spec/fixtures/valid_evergreen_child_1.json +1 -0
- data/spec/fixtures/valid_search.json +1282 -0
- data/spec/fixtures/valid_search_no_event_results.json +5 -0
- data/spec/fixtures/valid_search_no_results.json +9 -0
- data/spec/spec_helper.rb +15 -0
- data/spec/support/helper.rb +43 -0
- metadata +432 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ACTV::Client do
|
|
4
|
+
before do
|
|
5
|
+
@client = ACTV::Client.new
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
describe "#article" do
|
|
9
|
+
context "with a valid article ID passed" do
|
|
10
|
+
before do
|
|
11
|
+
stub_get("/v2/assets/valid_article.json").
|
|
12
|
+
to_return(body: fixture("valid_article.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
before(:each) do
|
|
16
|
+
@article = @client.article("valid_article")
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "requests the correct article" do
|
|
20
|
+
a_get("/v2/assets/valid_article.json").should have_been_made
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should return the correct summary" do
|
|
24
|
+
@article.summary.should include "Running can be endlessly"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it "should return the correct description" do
|
|
28
|
+
@article.description.should include "One of the great virtues"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should return the correct by line" do
|
|
32
|
+
@article.by_line.should eq "By Greg Tymon, M.Ed., C.S.C.S."
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "should return the correct source" do
|
|
36
|
+
@article.source.should include "American Running Association"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it "should return the correct author photo" do
|
|
40
|
+
@article.author_photo.url.should eq "/Assets/Running/Experts/Jeff+Galloway_120.jpg"
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it "should return the correct author bio" do
|
|
44
|
+
@article.author_bio.should =~ /Olympian Jeff Galloway has helped over/
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it "should return the correct type" do
|
|
48
|
+
@article.type.should eq "Article"
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
describe "#articles" do
|
|
54
|
+
context "performs an article search with no results" do
|
|
55
|
+
before do
|
|
56
|
+
stub_get("/v2/search.json?query=asdf&category=articles").
|
|
57
|
+
to_return(body: fixture("valid_search_no_results.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
before(:each) do
|
|
61
|
+
@search_results = @client.articles('asdf')
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
it 'returns an empty array of assets in results' do
|
|
65
|
+
@search_results.results.size.should eql 0
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it 'returns an empty array of facets' do
|
|
69
|
+
@search_results.facets.size.should eql 0
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it 'returns an empty array of facet_values in results' do
|
|
73
|
+
@search_results.facet_values.size.should eql 0
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
context "performs a search with results" do
|
|
78
|
+
before do
|
|
79
|
+
stub_get("/v2/search.json?query=running&category=articles").
|
|
80
|
+
to_return(body: fixture("valid_search.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
before(:each) do
|
|
84
|
+
@search_results = @client.articles('running')
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
it 'returns the correct array of assets in the results' do
|
|
88
|
+
@search_results.results.first.assetName.should eql 'Running 5K'
|
|
89
|
+
@search_results.results.size.should eql 5
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
it 'returns the correct array of facets' do
|
|
93
|
+
@search_results.facets.size.should eql 1
|
|
94
|
+
@search_results.facets.first.name.should eql 'topicName'
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
it 'returns the correct array of facet_values' do
|
|
98
|
+
@search_results.facet_values.first.name.should eql 'topicName'
|
|
99
|
+
@search_results.facet_values.first.value.should eql 'Running'
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
describe "#popular_articles" do
|
|
104
|
+
context 'performs a search with results' do
|
|
105
|
+
before do
|
|
106
|
+
stub_get("/v2/articles/popular").
|
|
107
|
+
to_return(body: fixture("valid_search.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
it 'returns an array of popular articles' do
|
|
111
|
+
search_results = @client.popular_articles()
|
|
112
|
+
search_results.results.size.should eql 5
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
context "performs an popular search with no results" do
|
|
117
|
+
before do
|
|
118
|
+
stub_get("/v2/articles/popular?topic=asdf").
|
|
119
|
+
to_return(body: fixture("valid_search_no_results.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
it 'returns an empty array of assets in results' do
|
|
123
|
+
search_results = @client.popular_articles({'topic' => 'asdf'})
|
|
124
|
+
search_results.results.size.should eql 0
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
end
|
|
130
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ACTV::Client do
|
|
4
|
+
|
|
5
|
+
before do
|
|
6
|
+
@client = ACTV::Client.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe "#asset" do
|
|
10
|
+
context "with a valid asset ID passed" do
|
|
11
|
+
before do
|
|
12
|
+
stub_get("/v2/assets/valid_asset.json").
|
|
13
|
+
to_return(body: fixture("valid_asset.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
14
|
+
|
|
15
|
+
@asset = @client.asset("valid_asset")[0]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "requests the correct asset" do
|
|
19
|
+
a_get("/v2/assets/valid_asset.json").should have_been_made
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "returns the correct place" do
|
|
23
|
+
@asset.place.name.should eq 'Kingwood Park New Jersey'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "returns the correct description" do
|
|
27
|
+
@asset.descriptions.size.should eq 1
|
|
28
|
+
@asset.descriptions.first.description.should eq 'The Run Daddy Run Event is the HCM Foundation way to bring the community together on Fathers Day Weekend to celebrate Fathers and their families. 100% of the proceeds will go to HCM service & scholarship programs.'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "returns the correct status" do
|
|
32
|
+
@asset.status.name.should eq 'VISIBLE'
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "returns the correct legacy data" do
|
|
36
|
+
@asset.legacy_data.online_registration?.should eq "true"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it "returns the correct asset channel" do
|
|
40
|
+
@asset.channels.size.should eq 2
|
|
41
|
+
@asset.channels.first.sequence.should eq "1"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it "returns the correct asset component" do
|
|
45
|
+
@asset.components.size.should eq 2
|
|
46
|
+
@asset.components.first.asset_guid.should eq "63e030f3-3df4-402c-9617-d37f6fb2c11b"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it "returns the correct asset prices" do
|
|
50
|
+
@asset.prices.size.should eq 1
|
|
51
|
+
@asset.prices.first.amount.should eq "10"
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "returns the correct asset topic" do
|
|
55
|
+
@asset.topics.size.should eq 1
|
|
56
|
+
@asset.topics.first.sequence.should eq "3"
|
|
57
|
+
@asset.topics.first.topic.should be_a ACTV::Topic
|
|
58
|
+
@asset.topics.first.topic.name.should eq "Duathlon"
|
|
59
|
+
@asset.topics.first.topic.taxonomy.should eq "Endurance/Duathlon"
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
describe "#asset_by_path" do
|
|
65
|
+
context "with a valid url passed" do
|
|
66
|
+
before do
|
|
67
|
+
@seo_url = "http://www.active.com/san-francisco-ca/running/crazy-eight-fall-2013"
|
|
68
|
+
@seo_url_md5 = Digest::MD5.hexdigest(@seo_url )
|
|
69
|
+
|
|
70
|
+
stub_get("/v2/seourls/#{@seo_url_md5}?load_asset=true").
|
|
71
|
+
to_return(body: fixture("valid_asset.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
72
|
+
|
|
73
|
+
@asset = @client.find_asset_by_url(@seo_url)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
it "returns the correct url" do
|
|
77
|
+
@asset.seo_url.should eq @seo_url
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
it "returns the correct status" do
|
|
81
|
+
@asset.status.name.should eq 'VISIBLE'
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ACTV::Client do
|
|
4
|
+
|
|
5
|
+
before do
|
|
6
|
+
@client = ACTV::Client.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe "#event_results" do
|
|
10
|
+
context "performs a search with results" do
|
|
11
|
+
before do
|
|
12
|
+
stub_get("/api/v1/events/286F5731-9800-4C6E-ADD5-0E3B72392CA7/3BF82BBE-CF88-4E8C-A56F-78F5CE87E4C6.json").
|
|
13
|
+
to_return(body: fixture("valid_event_results.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'returns an an event result' do
|
|
17
|
+
search_results = @client.event_results("286F5731-9800-4C6E-ADD5-0E3B72392CA7", "3BF82BBE-CF88-4E8C-A56F-78F5CE87E4C6",{})
|
|
18
|
+
search_results.title.should eql "2013 IRONMAN 70.3 Hawaii"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
context "performs a search with no results" do
|
|
23
|
+
before do
|
|
24
|
+
stub_get("/v2/events/popular?topic=asdf").
|
|
25
|
+
to_return(body: fixture("valid_search_no_event_results.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it 'returns nil' do
|
|
29
|
+
search_results = @client.event_results("asdf", "asdf",{})
|
|
30
|
+
search_results.should eql nil
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ACTV::Client do
|
|
4
|
+
|
|
5
|
+
before do
|
|
6
|
+
@client = ACTV::Client.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe "#event" do
|
|
10
|
+
context "with a valid event ID passed" do
|
|
11
|
+
before do
|
|
12
|
+
stub_get("/v2/assets/valid_event.json").
|
|
13
|
+
to_return(body: fixture("valid_event.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
before(:each) do
|
|
17
|
+
@event = @client.event("valid_event")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "requests the correct event" do
|
|
21
|
+
a_get("/v2/assets/valid_event.json").should have_been_made
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "has online reigstration available" do
|
|
25
|
+
@event.online_registration_available?.should eq true
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "does not have registration not yet open" do
|
|
29
|
+
@event.registration_not_yet_open?.should eq false
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "does not have registration open" do
|
|
33
|
+
@event.registration_open?.should eq false
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "has registration closed" do
|
|
37
|
+
@event.activityEndDate = "2013-07-24T00:00:00"
|
|
38
|
+
@event.registration_closed?.should eq true
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "has ended" do
|
|
42
|
+
@event.ended?.should eq true
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
describe "#popular_events" do
|
|
48
|
+
context "performs a search with results" do
|
|
49
|
+
before do
|
|
50
|
+
stub_get("/v2/events/popular").
|
|
51
|
+
to_return(body: fixture("valid_search.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it 'returns an array of popular events' do
|
|
55
|
+
search_results = @client.popular_events()
|
|
56
|
+
search_results.results.size.should eql 5
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
context "performs a search with no results" do
|
|
61
|
+
before do
|
|
62
|
+
stub_get("/v2/events/popular?topic=asdf").
|
|
63
|
+
to_return(body: fixture("valid_search_no_results.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it 'returns an empty array of assets in results' do
|
|
67
|
+
search_results = @client.popular_events({'topic' => 'asdf'})
|
|
68
|
+
search_results.results.size.should eql 0
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
describe "#upcoming_events" do
|
|
74
|
+
context 'performs a search with results' do
|
|
75
|
+
before do
|
|
76
|
+
stub_get("/v2/events/upcoming").
|
|
77
|
+
to_return(body: fixture("valid_search.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
it 'returns an array of upcoming_events' do
|
|
81
|
+
search_results = @client.upcoming_events()
|
|
82
|
+
search_results.results.size.should eql 5
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
context "performs a search with no results" do
|
|
87
|
+
before do
|
|
88
|
+
stub_get("/v2/events/popular?topic=asdf").
|
|
89
|
+
to_return(body: fixture("valid_search_no_results.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
it 'returns an empty array of assets in results' do
|
|
93
|
+
search_results = @client.popular_events({'topic' => 'asdf'})
|
|
94
|
+
search_results.results.size.should eql 0
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ACTV::Client do
|
|
4
|
+
|
|
5
|
+
before do
|
|
6
|
+
@client = ACTV::Client.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe "#assets aka #search" do
|
|
10
|
+
context "performs a search with no results" do
|
|
11
|
+
before do
|
|
12
|
+
stub_get("/v2/search.json?query=asdf").
|
|
13
|
+
to_return(body: fixture("valid_search_no_results.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'returns an empty array of assets in results' do
|
|
17
|
+
search_results = @client.assets('asdf')
|
|
18
|
+
search_results.results.size.should eql 0
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'returns an empty array of facets' do
|
|
22
|
+
search_results = @client.assets('asdf')
|
|
23
|
+
search_results.facets.size.should eql 0
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'returns an empty array of facet_values in results' do
|
|
27
|
+
search_results = @client.assets('asdf')
|
|
28
|
+
search_results.facet_values.size.should eql 0
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
context "performs a search with results" do
|
|
33
|
+
before do
|
|
34
|
+
stub_get("/v2/search.json?query=running").
|
|
35
|
+
to_return(body: fixture("valid_search.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it 'returns the correct array of assets in the results' do
|
|
39
|
+
search_results = @client.assets('running')
|
|
40
|
+
search_results.results.first.assetName.should eql 'Running 5K'
|
|
41
|
+
search_results.results.size.should eql 5
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it 'returns the correct array of facets' do
|
|
45
|
+
search_results = @client.assets('running')
|
|
46
|
+
search_results.facets.size.should eql 1
|
|
47
|
+
search_results.facets.first.name.should eql 'topicName'
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it 'returns the correct array of facet_values' do
|
|
51
|
+
search_results = @client.assets('running')
|
|
52
|
+
search_results.facet_values.first.name.should eql 'topicName'
|
|
53
|
+
search_results.facet_values.first.value.should eql 'Running'
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ACTV::Client do
|
|
4
|
+
|
|
5
|
+
before do
|
|
6
|
+
@client = ACTV::Client.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe "#system_health" do
|
|
10
|
+
before do
|
|
11
|
+
stub_get("/system_health").
|
|
12
|
+
to_return(:body => fixture("system_health.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ACTV::Client do
|
|
4
|
+
|
|
5
|
+
before do
|
|
6
|
+
@client = ACTV::Client.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe "#me" do
|
|
10
|
+
context "with a valid access token" do
|
|
11
|
+
before do
|
|
12
|
+
stub_get("/v2/me.json").
|
|
13
|
+
to_return(body: fixture("me.json"), headers: { content_type: "application/json; charset=utf-8" })
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "requests the correct user" do
|
|
17
|
+
@client.me
|
|
18
|
+
a_get("/v2/me.json").should have_been_made
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "returns the correct name" do
|
|
22
|
+
me = @client.me
|
|
23
|
+
me.first_name.should eq 'Jeff'
|
|
24
|
+
me.last_name.should eq 'Fang'
|
|
25
|
+
me.address.city.should eql "sfsfsf"
|
|
26
|
+
me.address.postal_code.should eql "12345"
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|