marvel_api 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/.document +1 -1
  3. data/.rspec +2 -1
  4. data/.travis.yml +8 -0
  5. data/Gemfile +11 -4
  6. data/Guardfile +5 -0
  7. data/LICENSE.txt +1 -1
  8. data/README.md +16 -4
  9. data/Rakefile +11 -8
  10. data/lib/marvel/client.rb +6 -14
  11. data/lib/marvel/connection.rb +10 -2
  12. data/lib/marvel/error.rb +16 -0
  13. data/lib/marvel/request.rb +22 -8
  14. data/lib/marvel/response.rb +21 -0
  15. data/lib/marvel/version.rb +14 -0
  16. data/marvel_api.gemspec +75 -18
  17. data/spec/fixtures/characters/character.json +341 -0
  18. data/spec/fixtures/characters/character_comics.json +4975 -0
  19. data/spec/fixtures/characters/character_events.json +1666 -0
  20. data/spec/fixtures/characters/character_series.json +6117 -0
  21. data/spec/fixtures/characters/character_stories.json +1873 -0
  22. data/spec/fixtures/characters/characters.json +3006 -0
  23. data/spec/fixtures/comics/comic.json +359 -0
  24. data/spec/fixtures/comics/comic_characters.json +4649 -0
  25. data/spec/fixtures/comics/comic_creators.json +4387 -0
  26. data/spec/fixtures/comics/comic_events.json +522 -0
  27. data/spec/fixtures/comics/comic_stories.json +1985 -0
  28. data/spec/fixtures/comics/comics.json +2246 -0
  29. data/spec/fixtures/creators/creator.json +340 -0
  30. data/spec/fixtures/creators/creator_comics.json +2856 -0
  31. data/spec/fixtures/creators/creator_events.json +1899 -0
  32. data/spec/fixtures/creators/creator_series.json +4686 -0
  33. data/spec/fixtures/creators/creator_stories.json +1491 -0
  34. data/spec/fixtures/creators/creators.json +1376 -0
  35. data/spec/fixtures/errors/empty_parameter.json +4 -0
  36. data/spec/fixtures/errors/excessive_filter_values.json +4 -0
  37. data/spec/fixtures/errors/invalid_credentials.json +4 -0
  38. data/spec/fixtures/errors/invalid_filter_value.json +4 -0
  39. data/spec/fixtures/errors/invalid_hash_ts_key_combo.json +4 -0
  40. data/spec/fixtures/errors/invalid_ordering.json +4 -0
  41. data/spec/fixtures/errors/invalid_parameter.json +4 -0
  42. data/spec/fixtures/errors/limit_invalid.json +4 -0
  43. data/spec/fixtures/errors/limit_over_100.json +4 -0
  44. data/spec/fixtures/errors/resource_not_found.json +4 -0
  45. data/spec/fixtures/events/event.json +522 -0
  46. data/spec/fixtures/events/event_characters.json +6397 -0
  47. data/spec/fixtures/events/event_comics.json +4718 -0
  48. data/spec/fixtures/events/event_creators.json +5869 -0
  49. data/spec/fixtures/events/event_series.json +2243 -0
  50. data/spec/fixtures/events/event_stories.json +4846 -0
  51. data/spec/fixtures/events/events.json +8613 -0
  52. data/spec/fixtures/series/serie.json +448 -0
  53. data/spec/fixtures/series/series.json +3464 -0
  54. data/spec/fixtures/series/series_characters.json +6029 -0
  55. data/spec/fixtures/series/series_comics.json +2935 -0
  56. data/spec/fixtures/series/series_creators.json +5923 -0
  57. data/spec/fixtures/series/series_events.json +944 -0
  58. data/spec/fixtures/series/series_stories.json +1544 -0
  59. data/spec/fixtures/stories/stories.json +1282 -0
  60. data/spec/fixtures/stories/story.json +117 -0
  61. data/spec/fixtures/stories/story_characters.json +794 -0
  62. data/spec/fixtures/stories/story_comics.json +522 -0
  63. data/spec/fixtures/stories/story_creators.json +1672 -0
  64. data/spec/fixtures/stories/story_events.json +522 -0
  65. data/spec/fixtures/stories/story_series.json +695 -0
  66. data/spec/marvel_api/client/client_character_spec.rb +142 -0
  67. data/spec/marvel_api/client/client_comic_spec.rb +141 -0
  68. data/spec/marvel_api/client/client_creator_spec.rb +139 -0
  69. data/spec/marvel_api/client/client_event_spec.rb +163 -0
  70. data/spec/marvel_api/client/client_series_spec.rb +165 -0
  71. data/spec/marvel_api/client/client_story_spec.rb +162 -0
  72. data/spec/marvel_api/error_spec.rb +192 -0
  73. data/spec/marvel_api_spec.rb +15 -3
  74. data/spec/spec_helper.rb +55 -4
  75. metadata +83 -27
  76. data/VERSION +0 -1
  77. data/spec/marvel_api/client_spec.rb +0 -7
@@ -0,0 +1,142 @@
1
+ require 'spec_helper'
2
+
3
+ describe Marvel::Client do
4
+ let(:client) { marvel_test_client }
5
+
6
+ context 'Character endpoints' do
7
+ let(:id) { 1009652 }
8
+
9
+ describe '#characters' do
10
+ before do
11
+ stub_get('characters', returns: 'characters/characters.json')
12
+ end
13
+
14
+ it 'fetches a list of characters' do
15
+ expect(client.characters.size).to eq 20
16
+ expect(client.characters.map(&:name).take(3))
17
+ .to eq ['3-D Man', 'A-Bomb (HAS)', 'A.I.M.']
18
+ end
19
+
20
+ it 'requests public/v1/characters successfully' do
21
+ expect(client.characters.status).to eq 'Ok'
22
+ end
23
+
24
+ it 'returns an [ Hashie::Mash ]' do
25
+ expect(client.characters).to be_an Array
26
+ expect(client.characters.sample).to be_a Hashie::Mash
27
+ end
28
+ end
29
+
30
+ describe '#character' do
31
+ before do
32
+ stub_get("characters/#{id}", returns: 'characters/character.json')
33
+ end
34
+
35
+ it 'fetches a single character by id' do
36
+ expect(client.character(id).size).to eq 1
37
+ expect(client.character(id).pop.name).to eq 'Thanos'
38
+ end
39
+
40
+ it 'requests public/v1/characters/#{id} successfully' do
41
+ expect(client.character(id).status).to eq 'Ok'
42
+ end
43
+
44
+ it 'returns an [ Hashie::Mash ]' do
45
+ expect(client.character(id)).to be_an Array
46
+ expect(client.character(id).sample).to be_a Hashie::Mash
47
+ end
48
+ end
49
+
50
+ describe '#character_comics' do
51
+ before do
52
+ stub_get("characters/#{id}/comics",
53
+ returns: 'characters/character_comics.json')
54
+ end
55
+
56
+ it 'fetches a list of comics filtered by character id' do
57
+ expect(client.character_comics(id).size).to eq 20
58
+ expect(client.character_comics(id).map(&:title).take(3))
59
+ .to eq ['Thanos Annual (2014) #1',
60
+ 'Thanos Rising (2013) #3',
61
+ 'AVENGERS ASSEMBLE (2012) #3']
62
+ end
63
+
64
+ it 'requests public/v1/characters/#{id}/comics successfully' do
65
+ expect(client.character_comics(id).status).to eq 'Ok'
66
+ end
67
+
68
+ it 'returns an [ Hashie::Mash ]' do
69
+ expect(client.character_comics(id)).to be_an Array
70
+ expect(client.character_comics(id).sample).to be_a Hashie::Mash
71
+ end
72
+ end
73
+
74
+ describe '#character_events' do
75
+ before do
76
+ stub_get("characters/#{id}/events",
77
+ returns: 'characters/character_events.json')
78
+ end
79
+
80
+ it 'fetches a list of events filtered by character id' do
81
+ expect(client.character_events(id).size).to eq 4
82
+ expect(client.character_events(id).map(&:title).take(3))
83
+ .to eq ['Blood and Thunder', 'Infinity Gauntlet', 'Infinity War']
84
+ end
85
+
86
+ it 'requests public/v1/characters/#{id}/events successfully' do
87
+ expect(client.character_events(id).status).to eq 'Ok'
88
+ end
89
+
90
+ it 'returns an [ Hashie::Mash ]' do
91
+ expect(client.character_events(id)).to be_an Array
92
+ expect(client.character_events(id).sample).to be_a Hashie::Mash
93
+ end
94
+ end
95
+
96
+ describe '#character_series' do
97
+ before do
98
+ stub_get("characters/#{id}/series",
99
+ returns: 'characters/character_series.json')
100
+ end
101
+
102
+ it 'fetches a list of series filtered by character id' do
103
+ expect(client.character_series(id).size).to eq 20
104
+ expect(client.character_series(id).map(&:title).take(3))
105
+ .to eq ['Alpha Flight (1983 - 1994)',
106
+ 'Avengers & the Infinity Gauntlet (2011)',
107
+ 'Avengers Annual (1967 - 1994)']
108
+ end
109
+
110
+ it 'requests public/v1/characters/#{id}/series successfully' do
111
+ expect(client.character_series(id).status).to eq 'Ok'
112
+ end
113
+
114
+ it 'returns an [ Hashie::Mash ]' do
115
+ expect(client.character_series(id)).to be_an Array
116
+ expect(client.character_series(id).sample).to be_a Hashie::Mash
117
+ end
118
+ end
119
+
120
+ describe '#character_stories' do
121
+ before do
122
+ stub_get("characters/#{id}/stories",
123
+ returns: 'characters/character_stories.json')
124
+ end
125
+
126
+ it 'fetches a list of stories filtered by character id' do
127
+ expect(client.character_stories(id).size).to eq 20
128
+ expect(client.character_stories(id).map(&:title).take(3))
129
+ .to eq ['Interior #695', 'Interior #1413', 'Interior #1603']
130
+ end
131
+
132
+ it 'requests public/v1/characters/#{id}/stories successfully' do
133
+ expect(client.character_stories(id).status).to eq 'Ok'
134
+ end
135
+
136
+ it 'returns an [ Hashie::Mash ]' do
137
+ expect(client.character_stories(id)).to be_an Array
138
+ expect(client.character_stories(id).sample).to be_a Hashie::Mash
139
+ end
140
+ end
141
+ end
142
+ end
@@ -0,0 +1,141 @@
1
+ require 'spec_helper'
2
+
3
+ describe Marvel::Client do
4
+ let(:client) { marvel_test_client }
5
+
6
+ context 'Comic endpoints' do
7
+ let(:id) { 17701 }
8
+
9
+ describe '#comics' do
10
+ before do
11
+ stub_get('comics', returns: 'comics/comics.json')
12
+ end
13
+
14
+ it 'fetches a list of comics' do
15
+ expect(client.comics.size).to eq 20
16
+ expect(client.comics.map(&:title).take(3))
17
+ .to eq ['Ant-Man: So (Trade Paperback)',
18
+ 'Amazing Spider-Man (2014) #13',
19
+ 'SCARLET (2010) #9']
20
+ end
21
+
22
+ it 'requests public/v1/comics successfully' do
23
+ expect(client.comics.status).to eq 'Ok'
24
+ end
25
+
26
+ it 'returns an [ Hashie::Mash ]' do
27
+ expect(client.comics).to be_an Array
28
+ expect(client.comics.sample).to be_a Hashie::Mash
29
+ end
30
+ end
31
+
32
+ describe '#comic' do
33
+ before do
34
+ stub_get("comics/#{id}", returns: 'comics/comic.json')
35
+ end
36
+
37
+ it 'fetches a single comic by id' do
38
+ expect(client.comic(id).size).to eq 1
39
+ expect(client.comic(id).pop.title)
40
+ .to eq 'Age of Apocalypse: The Chosen (1995) #1'
41
+ end
42
+
43
+ it 'requests public/v1/comics/#{id} successfully' do
44
+ expect(client.comic(id).status).to eq 'Ok'
45
+ end
46
+
47
+ it 'returns an [ Hashie::Mash ]' do
48
+ expect(client.comic(id)).to be_an Array
49
+ expect(client.comic(id).sample).to be_a Hashie::Mash
50
+ end
51
+ end
52
+
53
+ describe '#comic_characters' do
54
+ before do
55
+ stub_get("comics/#{id}/characters",
56
+ returns: 'comics/comic_characters.json')
57
+ end
58
+
59
+ it 'fetches a list of characters filtered by comic id' do
60
+ expect(client.comic_characters(id).size).to eq 13
61
+ expect(client.comic_characters(id).map(&:name).take(3))
62
+ .to eq ['Archangel', 'Aurora', 'Bishop']
63
+ end
64
+
65
+ it 'requests public/v1/comics/#{id}/characters successfully' do
66
+ expect(client.comic_characters(id).status).to eq 'Ok'
67
+ end
68
+
69
+ it 'returns an [ Hashie::Mash ]' do
70
+ expect(client.comic_characters(id)).to be_an Array
71
+ expect(client.comic_characters(id).sample).to be_a Hashie::Mash
72
+ end
73
+ end
74
+
75
+ describe '#comic_creators' do
76
+ before do
77
+ stub_get("comics/#{id}/creators",
78
+ returns: 'comics/comic_creators.json')
79
+ end
80
+
81
+ it 'fetches a list of creators filtered by comic id' do
82
+ expect(client.comic_creators(id).size).to eq 15
83
+ expect(client.comic_creators(id).map(&:fullName).take(3))
84
+ .to eq ['Terry Austin', 'Ian Churchill', 'Kelly Corvese']
85
+ end
86
+
87
+ it 'requests public/v1/comics/#{id}/creators successfully' do
88
+ expect(client.comic_creators(id).status).to eq 'Ok'
89
+ end
90
+
91
+ it 'returns an [ Hashie::Mash ]' do
92
+ expect(client.comic_creators(id)).to be_an Array
93
+ expect(client.comic_creators(id).sample).to be_a Hashie::Mash
94
+ end
95
+ end
96
+
97
+ describe '#comic_events' do
98
+ before do
99
+ stub_get("comics/#{id}/events",
100
+ returns: 'comics/comic_events.json')
101
+ end
102
+
103
+ it 'fetches a list of events filtered by comic id' do
104
+ expect(client.comic_events(id).size).to eq 1
105
+ expect(client.comic_events(id).map(&:title))
106
+ .to eq ['Age of Apocalypse']
107
+ end
108
+
109
+ it 'requests public/v1/comics/#{id}/events successfully' do
110
+ expect(client.comic_events(id).status).to eq 'Ok'
111
+ end
112
+
113
+ it 'returns an [ Hashie::Mash ]' do
114
+ expect(client.comic_events(id)).to be_an Array
115
+ expect(client.comic_events(id).sample).to be_a Hashie::Mash
116
+ end
117
+ end
118
+
119
+ describe '#comic_stories' do
120
+ before do
121
+ stub_get("comics/#{id}/stories",
122
+ returns: 'comics/comic_stories.json')
123
+ end
124
+
125
+ it 'fetches a list of stories filtered by comic id' do
126
+ expect(client.comic_stories(id).size).to eq 20
127
+ expect(client.comic_stories(id).map(&:id).take(3))
128
+ .to eq [37492, 37493, 37494]
129
+ end
130
+
131
+ it 'requests public/v1/comics/#{id}/stories successfully' do
132
+ expect(client.comic_stories(id).status).to eq 'Ok'
133
+ end
134
+
135
+ it 'returns an [ Hashie::Mash ]' do
136
+ expect(client.comic_stories(id)).to be_an Array
137
+ expect(client.comic_stories(id).sample).to be_a Hashie::Mash
138
+ end
139
+ end
140
+ end
141
+ end
@@ -0,0 +1,139 @@
1
+ require 'spec_helper'
2
+
3
+ describe Marvel::Client do
4
+ let(:client) { marvel_test_client }
5
+
6
+ context 'Creator endpoints' do
7
+ let(:id) { 30 }
8
+
9
+ describe '#creators' do
10
+ before do
11
+ stub_get('creators', returns: 'creators/creators.json')
12
+ end
13
+
14
+ it 'fetches a list of creators' do
15
+ expect(client.creators.size).to eq 20
16
+ expect(client.creators.map(&:id).take(3))
17
+ .to eq [7968, 6606, 3096]
18
+ end
19
+
20
+ it 'requests public/v1/creators successfully' do
21
+ expect(client.creators.status).to eq 'Ok'
22
+ end
23
+
24
+ it 'returns an [ Hashie::Mash ]' do
25
+ expect(client.creators).to be_an Array
26
+ expect(client.creators.sample).to be_a Hashie::Mash
27
+ end
28
+ end
29
+
30
+ describe '#creator' do
31
+ before do
32
+ stub_get("creators/#{id}", returns: 'creators/creator.json')
33
+ end
34
+
35
+ it 'fetches a single creator by id' do
36
+ expect(client.creator(id).size).to eq 1
37
+ expect(client.creator(id).pop.fullName)
38
+ .to eq 'Stan Lee'
39
+ end
40
+
41
+ it 'requests public/v1/creators/#{id} successfully' do
42
+ expect(client.creator(id).status).to eq 'Ok'
43
+ end
44
+
45
+ it 'returns an [ Hashie::Mash ]' do
46
+ expect(client.creator(id)).to be_an Array
47
+ expect(client.creator(id).sample).to be_a Hashie::Mash
48
+ end
49
+ end
50
+
51
+ describe '#creator_comics' do
52
+ before do
53
+ stub_get("creators/#{id}/comics",
54
+ returns: 'creators/creator_comics.json')
55
+ end
56
+
57
+ it 'fetches a list of comics filtered by creator id' do
58
+ expect(client.creator_comics(id).size).to eq 20
59
+ expect(client.creator_comics(id).map(&:id).take(3))
60
+ .to eq [48073, 48072, 48377]
61
+ end
62
+
63
+ it 'requests public/v1/creators/#{id}/comics successfully' do
64
+ expect(client.creator_comics(id).status).to eq 'Ok'
65
+ end
66
+
67
+ it 'returns an [ Hashie::Mash ]' do
68
+ expect(client.creator_comics(id)).to be_an Array
69
+ expect(client.creator_comics(id).sample).to be_a Hashie::Mash
70
+ end
71
+ end
72
+
73
+ describe '#creator_events' do
74
+ before do
75
+ stub_get("creators/#{id}/events",
76
+ returns: 'creators/creator_events.json')
77
+ end
78
+
79
+ it 'fetches a list of events filtered by creator id' do
80
+ expect(client.creator_events(id).size).to eq 4
81
+ expect(client.creator_events(id).map(&:title).take(3))
82
+ .to eq ['Civil War', 'House of M', 'Other - Evolve or Die']
83
+ end
84
+
85
+ it 'requests public/v1/creators/#{id}/events successfully' do
86
+ expect(client.creator_events(id).status).to eq 'Ok'
87
+ end
88
+
89
+ it 'returns an [ Hashie::Mash ]' do
90
+ expect(client.creator_events(id)).to be_an Array
91
+ expect(client.creator_events(id).sample).to be_a Hashie::Mash
92
+ end
93
+ end
94
+
95
+ describe '#creator_series' do
96
+ before do
97
+ stub_get("creators/#{id}/series",
98
+ returns: 'creators/creator_series.json')
99
+ end
100
+
101
+ it 'fetches a list of series filtered by creator id' do
102
+ expect(client.creator_series(id).size).to eq 20
103
+ expect(client.creator_series(id).map(&:id).take(3))
104
+ .to eq [1023, 1147, 2114]
105
+ end
106
+
107
+ it 'requests public/v1/creators/#{id}/series successfully' do
108
+ expect(client.creator_series(id).status).to eq 'Ok'
109
+ end
110
+
111
+ it 'returns an [ Hashie::Mash ]' do
112
+ expect(client.creator_series(id)).to be_an Array
113
+ expect(client.creator_series(id).sample).to be_a Hashie::Mash
114
+ end
115
+ end
116
+
117
+ describe '#creator_stories' do
118
+ before do
119
+ stub_get("creators/#{id}/stories",
120
+ returns: 'creators/creator_stories.json')
121
+ end
122
+
123
+ it 'fetches a list of stories filtered by creator id' do
124
+ expect(client.creator_stories(id).size).to eq 20
125
+ expect(client.creator_stories(id).map(&:id).take(3))
126
+ .to eq [29, 31, 32]
127
+ end
128
+
129
+ it 'requests public/v1/creators/#{id}/stories successfully' do
130
+ expect(client.creator_stories(id).status).to eq 'Ok'
131
+ end
132
+
133
+ it 'returns an [ Hashie::Mash ]' do
134
+ expect(client.creator_stories(id)).to be_an Array
135
+ expect(client.creator_stories(id).sample).to be_a Hashie::Mash
136
+ end
137
+ end
138
+ end
139
+ end
@@ -0,0 +1,163 @@
1
+ require 'spec_helper'
2
+
3
+ describe Marvel::Client do
4
+ let(:client) { marvel_test_client }
5
+
6
+ context 'Event endpoints' do
7
+ let(:id) { 227 }
8
+
9
+ describe '#events' do
10
+ before do
11
+ stub_get('events', returns: 'events/events.json')
12
+ end
13
+
14
+ it 'fetches a list of events' do
15
+ expect(client.events.size).to eq 20
16
+ expect(client.events.map(&:title).take(3))
17
+ .to eq ['Acts of Vengeance!', 'Age of Apocalypse', 'Age of Ultron']
18
+ end
19
+
20
+ it 'requests public/v1/events successfully' do
21
+ expect(client.events.status).to eq 'Ok'
22
+ end
23
+
24
+ it 'returns an [ Hashie::Mash ]' do
25
+ expect(client.events).to be_an Array
26
+ expect(client.events.sample).to be_a Hashie::Mash
27
+ end
28
+ end
29
+
30
+ describe '#event' do
31
+ before do
32
+ stub_get("events/#{id}", returns: 'events/event.json')
33
+ end
34
+
35
+ it 'fetches a single event by id' do
36
+ expect(client.event(id).size).to eq 1
37
+ expect(client.event(id).pop.title)
38
+ .to eq 'Age of Apocalypse'
39
+ end
40
+
41
+ it 'requests public/v1/events/#{id} successfully' do
42
+ expect(client.event(id).status).to eq 'Ok'
43
+ end
44
+
45
+ it 'returns an [ Hashie::Mash ]' do
46
+ expect(client.event(id)).to be_an Array
47
+ expect(client.event(id).sample).to be_a Hashie::Mash
48
+ end
49
+ end
50
+
51
+ describe '#event_characters' do
52
+ before do
53
+ stub_get("events/#{id}/characters",
54
+ returns: 'events/event_characters.json')
55
+ end
56
+
57
+ it 'fetches a list of characters filtered by event id' do
58
+ expect(client.event_characters(id).size).to eq 20
59
+ expect(client.event_characters(id).map(&:name).take(3))
60
+ .to eq ['Abyss', 'Apocalypse', 'Arcade']
61
+ end
62
+
63
+ it 'requests public/v1/events/#{id}/characters successfully' do
64
+ expect(client.event_characters(id).status).to eq 'Ok'
65
+ end
66
+
67
+ it 'returns an [ Hashie::Mash ]' do
68
+ expect(client.event_characters(id)).to be_an Array
69
+ expect(client.event_characters(id).sample).to be_a Hashie::Mash
70
+ end
71
+ end
72
+
73
+ describe '#event_comics' do
74
+ before do
75
+ stub_get("events/#{id}/comics",
76
+ returns: 'events/event_comics.json')
77
+ end
78
+
79
+ it 'fetches a list of comics filtered by event id' do
80
+ expect(client.event_comics(id).size).to eq 20
81
+ expect(client.event_comics(id).map(&:id).take(3))
82
+ .to eq [5369, 4090, 2539]
83
+ end
84
+
85
+ it 'requests public/v1/events/#{id}/comics successfully' do
86
+ expect(client.event_comics(id).status).to eq 'Ok'
87
+ end
88
+
89
+ it 'returns an [ Hashie::Mash ]' do
90
+ expect(client.event_comics(id)).to be_an Array
91
+ expect(client.event_comics(id).sample).to be_a Hashie::Mash
92
+ end
93
+ end
94
+
95
+ describe '#event_creators' do
96
+ before do
97
+ stub_get("events/#{id}/creators",
98
+ returns: 'events/event_creators.json')
99
+ end
100
+
101
+ it 'fetches a list of creators filtered by event id' do
102
+ expect(client.event_creators(id).size).to eq 20
103
+ expect(client.event_creators(id).map(&:id).take(3))
104
+ .to eq [807, 5898, 5991]
105
+ end
106
+
107
+ it 'requests public/v1/events/#{id}/creators successfully' do
108
+ expect(client.event_creators(id).status).to eq 'Ok'
109
+ end
110
+
111
+ it 'returns an [ Hashie::Mash ]' do
112
+ expect(client.event_creators(id)).to be_an Array
113
+ expect(client.event_creators(id).sample).to be_a Hashie::Mash
114
+ end
115
+ end
116
+
117
+ describe '#event_series' do
118
+ before do
119
+ stub_get("events/#{id}/series",
120
+ returns: 'events/event_series.json')
121
+ end
122
+
123
+ it 'fetches a list of series filtered by event id' do
124
+ expect(client.event_series(id).size).to eq 20
125
+ expect(client.event_series(id).map(&:id).take(3))
126
+ .to eq [6850, 7272, 7273]
127
+ end
128
+
129
+ it 'requests public/v1/events/#{id}/series successfully' do
130
+ expect(client.event_series(id).status).to eq 'Ok'
131
+ end
132
+
133
+ it 'returns an [ Hashie::Mash ]' do
134
+ expect(client.event_series(id)).to be_an Array
135
+ expect(client.event_series(id).sample).to be_a Hashie::Mash
136
+ end
137
+ end
138
+
139
+ describe '#event_stories' do
140
+ before do
141
+ stub_get("events/#{id}/stories",
142
+ returns: 'events/event_stories.json')
143
+ end
144
+
145
+ it 'fetches a list of stories filtered by event id' do
146
+ expect(client.event_stories(id).size).to eq 20
147
+ expect(client.event_stories(id).map(&:title).take(3))
148
+ .to eq ['Age of Apocalypse: The Chosen (1995)',
149
+ 'Amazing X-Men (1995)',
150
+ 'Astonishing X-Men (1995)']
151
+ end
152
+
153
+ it 'requests public/v1/events/#{id}/stories successfully' do
154
+ expect(client.event_stories(id).status).to eq 'Ok'
155
+ end
156
+
157
+ it 'returns an [ Hashie::Mash ]' do
158
+ expect(client.event_stories(id)).to be_an Array
159
+ expect(client.event_stories(id).sample).to be_a Hashie::Mash
160
+ end
161
+ end
162
+ end
163
+ end