marvel_api 0.2.0 → 0.2.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.
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