thetvdb_api 0.2.5 → 0.3.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -15
  3. data/CHANGELOG.md +53 -0
  4. data/README.md +80 -103
  5. data/lib/thetvdb_api/actor.rb +18 -11
  6. data/lib/thetvdb_api/banner.rb +18 -11
  7. data/lib/thetvdb_api/base.rb +24 -0
  8. data/lib/thetvdb_api/episode.rb +68 -48
  9. data/lib/thetvdb_api/search.rb +85 -28
  10. data/lib/thetvdb_api/series.rb +36 -22
  11. data/lib/thetvdb_api/update.rb +8 -4
  12. data/lib/thetvdb_api/version.rb +1 -1
  13. data/spec/functionals/actor_spec.rb +26 -6
  14. data/spec/functionals/banner_spec.rb +26 -6
  15. data/spec/functionals/base_spec.rb +79 -0
  16. data/spec/functionals/episode_spec.rb +120 -28
  17. data/spec/functionals/search_spec.rb +143 -25
  18. data/spec/functionals/series_spec.rb +54 -14
  19. data/spec/functionals/update_spec.rb +12 -12
  20. data/spec/integrations/actor_spec.rb +14 -0
  21. data/spec/integrations/banner_spec.rb +14 -0
  22. data/spec/integrations/client_spec.rb +150 -0
  23. data/spec/integrations/episode_spec.rb +43 -0
  24. data/spec/integrations/search_spec.rb +41 -0
  25. data/spec/integrations/series_spec.rb +23 -0
  26. data/spec/integrations/update_spec.rb +32 -0
  27. data/spec/spec_helper.rb +1 -4
  28. data/spec/support/.keep +0 -0
  29. data/spec/support/api_key.rb.example +1 -0
  30. data/thetvdb_api.gemspec +2 -2
  31. metadata +29 -24
  32. data/spec/integrations/classes/actor_spec.rb +0 -13
  33. data/spec/integrations/classes/banner_spec.rb +0 -13
  34. data/spec/integrations/classes/client_spec.rb +0 -109
  35. data/spec/integrations/classes/episode_spec.rb +0 -31
  36. data/spec/integrations/classes/search_spec.rb +0 -31
  37. data/spec/integrations/classes/series_spec.rb +0 -19
  38. data/spec/integrations/classes/update_spec.rb +0 -31
  39. data/spec/integrations/integration_spec_helper.rb +0 -2
@@ -2,21 +2,28 @@ class ThetvdbApi::Search < ThetvdbApi::Base
2
2
  # Find the series data based on its name.
3
3
  #
4
4
  # access: FREE
5
- # param: options hash
6
- # seriesname: TV series name
7
- # output: XML string (example: http://thetvdb.com/wiki/index.php/API:GetSeries)
8
- def get_series(options = {})
9
- get_series_path_with_params(options).get
5
+ # param (flat params):
6
+ # get_series(series name)
7
+ # get_series('Buffy')
8
+ # param (hash params):
9
+ # get_series(name: 'Buffy')
10
+ # output: Faraday::Response instance with parsed XML string
11
+ # example: http://thetvdb.com/wiki/index.php/API:GetSeries
12
+ def get_series(*options)
13
+ get_series_path_with_params(*options).get
10
14
  end
11
15
 
12
16
  # Find the series data based on its name - return only url.
13
17
  #
14
18
  # access: FREE
15
- # param: options hash
16
- # seriesname: TV series name
19
+ # param (flat params):
20
+ # get_series_url(series name)
21
+ # get_series_url('Buffy')
22
+ # param (hash params):
23
+ # get_series_url(name: 'Buffy')
17
24
  # output: url string
18
- def get_series_url(options = {})
19
- get_series_path_with_params(options).url
25
+ def get_series_url(*options)
26
+ get_series_path_with_params(*options).url
20
27
  end
21
28
 
22
29
  # Find the series data by unique ID's used on other sites.
@@ -25,7 +32,8 @@ class ThetvdbApi::Search < ThetvdbApi::Base
25
32
  # param: options hash
26
33
  # imdbid: IMDb ID (don't use with zap2itid)
27
34
  # zap2itid: Zap2it ID (don't use with imdbid)
28
- # output: XML string (example: http://thetvdb.com/wiki/index.php/API:GetSeriesByRemoteID)
35
+ # output: Faraday::Response instance with parsed XML string
36
+ # example: http://thetvdb.com/wiki/index.php/API:GetSeriesByRemoteID
29
37
  def get_series_by_remote_id(options = {})
30
38
  get_series_by_remote_id_path_with_params(options).get
31
39
  end
@@ -34,43 +42,92 @@ class ThetvdbApi::Search < ThetvdbApi::Base
34
42
  #
35
43
  # access: FREE
36
44
  # param: options hash
37
- # seriesid: IMDb ID (don't use with zap2itid)
45
+ # imdbid: IMDb ID (don't use with zap2itid)
38
46
  # zap2itid: Zap2it ID (don't use with imdbid)
39
47
  # output: url string
40
48
  def get_series_by_remote_id_url(options = {})
41
49
  get_series_by_remote_id_path_with_params(options).url
42
50
  end
43
51
 
52
+ # Find the series data by unique IMDB ID
53
+ #
54
+ # access: FREE
55
+ # param (flat params):
56
+ # get_series_by_imdb_id(imdb_id)
57
+ # get_series_by_imdb_id('tt01234')
58
+ # output: Faraday::Response instance with parsed XML string
59
+ # example: http://thetvdb.com/wiki/index.php/API:GetSeriesByRemoteID
60
+ def get_series_by_imdb_id(imdb_id)
61
+ get_series_by_remote_id_path_with_params({ imdbid: imdb_id }).get
62
+ end
63
+
64
+ # Find the series data by unique IMDB ID - return only url.
65
+ #
66
+ # access: FREE
67
+ # param (flat params):
68
+ # get_series_by_imdb_id_url(imdb_id)
69
+ # get_series_by_imdb_id_url('tt01234')
70
+ # output: url string
71
+ def get_series_by_imdb_id_url(imdb_id)
72
+ get_series_by_remote_id_path_with_params({ imdbid: imdb_id }).url
73
+ end
44
74
 
45
- # Find the episode data by episode air date.
75
+ # Find the series data by unique zap2it ID
76
+ #
77
+ # access: FREE
78
+ # param (flat params):
79
+ # get_series_by_zap2it_id(zap2it_id)
80
+ # get_series_by_zap2it_id('SH01234')
81
+ # output: Faraday::Response instance with parsed XML string
82
+ # example: http://thetvdb.com/wiki/index.php/API:GetSeriesByRemoteID
83
+ def get_series_by_zap2it_id(zap2it_id)
84
+ get_series_by_remote_id_path_with_params({ zap2itid: zap2it_id }).get
85
+ end
86
+
87
+ # Find the series data by unique zap2it ID - return only url.
46
88
  #
47
89
  # access: FREE
48
90
  # param: options hash
49
- # seriesid: This is the seriesid for the series you want to use for finding episodes.
50
- # airdate: This is the date the episode aired on you are trying to lookup. This can be supplied in any valid date
51
- # type. Example: 2008-01-01, 2008-1-1, January 1, 2008, 1/1/2008, etc
52
- # output: XML string (example: http://thetvdb.com/wiki/index.php/API:GetEpisodeByAirDate)
53
- def get_episode(options = {})
54
- get_episode_path_with_params(options).get
91
+ # get_series_by_zap2it_id_url(zap2it_id)
92
+ # get_series_by_zap2it_id_url('SH01234')
93
+ # output: url string
94
+ def get_series_by_zap2it_id_url(zap2it_id)
95
+ get_series_by_remote_id_path_with_params({ zap2itid: zap2it_id }).url
96
+ end
97
+
98
+
99
+ # Find the episode data by episode air date.
100
+ #
101
+ # access: FREE
102
+ # param (flat params):
103
+ # get_episode(series_id, air date)
104
+ # get_episode(1234, '2000-01-01')
105
+ # param (hash params):
106
+ # get_episode(series_id: 1234, air_date: '2000-01-01')
107
+ # output: Faraday::Response instance with parsed XML string
108
+ # example: http://thetvdb.com/wiki/index.php/API:GetEpisodeByAirDate
109
+ def get_episode(*options)
110
+ get_episode_path_with_params(*options).get
55
111
  end
56
112
 
57
113
 
58
114
  # Find the episode data by episode air date - return only url.
59
115
  #
60
116
  # access: FREE
61
- # param: options hash
62
- # seriesid: This is the seriesid for the series you want to use for finding episodes.
63
- # airdate: This is the date the episode aired on you are trying to lookup. This can be supplied in any valid date
64
- # type. Example: 2008-01-01, 2008-1-1, January 1, 2008, 1/1/2008, etc
117
+ # param (flat params):
118
+ # get_episode_url(series_id, air date)
119
+ # get_episode_url(1234, '2000-01-01')
120
+ # param (hash params):
121
+ # get_episode_url(series_id: 1234, air_date: '2000-01-01')
65
122
  # output: url string
66
- def get_episode_url(options = {})
67
- get_episode_path_with_params(options).url
123
+ def get_episode_url(*options)
124
+ get_episode_path_with_params(*options).url
68
125
  end
69
126
 
70
127
  private
71
128
 
72
- def get_series_path_with_params(options)
73
- path(get_series_path).params(language_options.merge(options))
129
+ def get_series_path_with_params(*options)
130
+ path(get_series_path).params(language_options.merge(normalize_series_name_options(*options)))
74
131
  end
75
132
 
76
133
  def get_series_path
@@ -85,8 +142,8 @@ class ThetvdbApi::Search < ThetvdbApi::Base
85
142
  'GetSeriesByRemoteID.php'
86
143
  end
87
144
 
88
- def get_episode_path_with_params(options)
89
- path(get_episode_path).params(api_key_with_language_options.merge(options))
145
+ def get_episode_path_with_params(*options)
146
+ path(get_episode_path).params(api_key_with_language_options.merge(normalize_series_id_air_date_options(*options)))
90
147
  end
91
148
 
92
149
  def get_episode_path
@@ -2,55 +2,69 @@ class ThetvdbApi::Series < ThetvdbApi::Base
2
2
  # Find the series data by series id.
3
3
  #
4
4
  # access: FREE
5
- # param: options hash
6
- # series_id: TV series ID
7
- # output: XML string (example: http://thetvdb.com/wiki/index.php/API:Base_Series_Record)
8
- def find(options = {})
9
- find_path_with_params(options).get
5
+ # param (flat params):
6
+ # find(series_id)
7
+ # find(1234)
8
+ # param (hash params):
9
+ # find(series_id: 1234)
10
+ # output: Faraday::Response instance with parsed XML string
11
+ # example: http://thetvdb.com/wiki/index.php/API:Base_Series_Record
12
+ def find(*options)
13
+ find_path_with_params(*options).get
10
14
  end
11
15
 
12
16
  # Find the series data by series id - return only url.
13
17
  #
14
18
  # access: FREE
15
- # param: options hash
16
- # series_id: TV series ID
19
+ # param (flat params):
20
+ # find_url(series_id)
21
+ # find_url(1234)
22
+ # param (hash params):
23
+ # find_url(series_id: 1234)
17
24
  # output: url string
18
- def find_url(options = {})
19
- find_path_with_params(options).url
25
+ def find_url(*options)
26
+ find_path_with_params(*options).url
20
27
  end
21
28
 
22
29
  # Find the full series data by series id.
23
30
  #
24
31
  # access: FREE
25
- # param: options hash
26
- # series_id: TV series ID
27
- # output: XML string (example: http://thetvdb.com/wiki/index.php/API:Full_Series_Record)
28
- def find_full(options = {})
29
- find_full_path_with_params(options).get
32
+ # param (flat params):
33
+ # find_full(series_id)
34
+ # find_full(1234)
35
+ # param (hash params):
36
+ # find_full(series_id: 1234)
37
+ # output: Faraday::Response instance with parsed XML string
38
+ # example: http://thetvdb.com/wiki/index.php/API:Full_Series_Record
39
+ def find_full(*options)
40
+ find_full_path_with_params(*options).get
30
41
  end
31
42
 
32
43
  # Find the full series data by series id - return only url.
33
44
  #
34
45
  # access: FREE
35
- # param: options hash
36
- # series_id: TV series ID
46
+ # param (flat params):
47
+ # find_full_url(series_id)
48
+ # find_full_url(1234)
49
+ # param (hash params):
50
+ # find_full_url(series_id: 1234)
37
51
  # output: url string
38
- def find_full_url(options = {})
39
- find_full_path_with_params(options).url
52
+ def find_full_url(*options)
53
+ find_full_path_with_params(*options).url
40
54
  end
41
55
 
42
56
  private
43
57
 
44
- def find_path_with_params(options)
45
- path(find_path).params(api_key_with_language_options.merge(options))
58
+ def find_path_with_params(*options)
59
+ path(find_path).params(api_key_with_language_options.merge(normalize_series_id_options(*options)))
46
60
  end
47
61
 
48
62
  def find_path
49
63
  ':apikey/series/:series_id/:language.xml'
50
64
  end
51
65
 
52
- def find_full_path_with_params(options)
53
- path(find_full_path).params(api_key_with_language_options.merge(options))
66
+ def find_full_path_with_params(*options)
67
+ path(find_full_path).params(api_key_with_language_options.merge(normalize_series_id_options(*options)))
54
68
  end
55
69
 
56
70
  def find_full_path
@@ -2,7 +2,8 @@ class ThetvdbApi::Update < ThetvdbApi::Base
2
2
  # Find update data.
3
3
  #
4
4
  # access: FREE
5
- # output: XML string (example: http://thetvdb.com/wiki/index.php/API:Update_Records)
5
+ # output: Faraday::Response instance with parsed XML string
6
+ # example: http://thetvdb.com/wiki/index.php/API:Update_Records
6
7
  def day
7
8
  day_path_with_params.get
8
9
  end
@@ -18,7 +19,8 @@ class ThetvdbApi::Update < ThetvdbApi::Base
18
19
  # Find update data.
19
20
  #
20
21
  # access: FREE
21
- # output: XML string (example: http://thetvdb.com/wiki/index.php/API:Update_Records)
22
+ # output: Faraday::Response instance with parsed XML string
23
+ # example: http://thetvdb.com/wiki/index.php/API:Update_Records
22
24
  def week
23
25
  week_path_with_params.get
24
26
  end
@@ -34,7 +36,8 @@ class ThetvdbApi::Update < ThetvdbApi::Base
34
36
  # Find update data.
35
37
  #
36
38
  # access: FREE
37
- # output: XML string (example: http://thetvdb.com/wiki/index.php/API:Update_Records)
39
+ # output: Faraday::Response instance with parsed XML string
40
+ # example: http://thetvdb.com/wiki/index.php/API:Update_Records
38
41
  def month
39
42
  month_path_with_params.get
40
43
  end
@@ -50,7 +53,8 @@ class ThetvdbApi::Update < ThetvdbApi::Base
50
53
  # Find update data.
51
54
  #
52
55
  # access: FREE
53
- # output: XML string (example: http://thetvdb.com/wiki/index.php/API:Update_Records)
56
+ # output: Faraday::Response instance with parsed XML string
57
+ # example: http://thetvdb.com/wiki/index.php/API:Update_Records
54
58
  def all
55
59
  all_path_with_params.get
56
60
  end
@@ -1,3 +1,3 @@
1
1
  module ThetvdbApi
2
- VERSION = '0.2.5'
2
+ VERSION = '0.3.0'
3
3
  end
@@ -13,18 +13,38 @@ describe ThetvdbApi::Actor do
13
13
  end
14
14
 
15
15
  describe '.find' do
16
- it 'should return Faraday::Response class' do
17
- model.find(series_id: 1234).class.should == Faraday::Response
16
+ context 'hash attributes' do
17
+ it 'should return Faraday::Response class' do
18
+ expect(model.find(series_id: 1234)).to be_a(Faraday::Response)
19
+ end
20
+
21
+ it 'should return Hash class for body reponse' do
22
+ expect(model.find(series_id: 1234).body).to be_a(Hash)
23
+ end
18
24
  end
19
25
 
20
- it 'should return Hash class for body reponse' do
21
- model.find(series_id: 1234).body == Hash
26
+ context 'normal attributes' do
27
+ it 'should return Faraday::Response class' do
28
+ expect(model.find(1234)).to be_a(Faraday::Response)
29
+ end
30
+
31
+ it 'should return Hash class for body reponse' do
32
+ expect(model.find(1234).body).to be_a(Hash)
33
+ end
22
34
  end
23
35
  end
24
36
 
25
37
  describe '.find_url' do
26
- it 'should return correct url' do
27
- model.find_url(series_id: 1234).should == 'http://thetvdb.com/api/123456789/series/1234/actors.xml'
38
+ context 'hash attributes' do
39
+ it 'should return correct url' do
40
+ expect(model.find_url(series_id: 1234)).to eq('http://thetvdb.com/api/123456789/series/1234/actors.xml')
41
+ end
42
+ end
43
+
44
+ context 'normal attributes' do
45
+ it 'should return correct url' do
46
+ expect(model.find_url(1234)).to eq('http://thetvdb.com/api/123456789/series/1234/actors.xml')
47
+ end
28
48
  end
29
49
  end
30
50
  end
@@ -13,18 +13,38 @@ describe ThetvdbApi::Banner do
13
13
  end
14
14
 
15
15
  describe '.find' do
16
- it 'should return Faraday::Response class' do
17
- model.find(series_id: 1234).class.should == Faraday::Response
16
+ context 'hash attributes' do
17
+ it 'should return Faraday::Response class' do
18
+ expect(model.find(series_id: 1234)).to be_a(Faraday::Response)
19
+ end
20
+
21
+ it 'should return Hash class for body reponse' do
22
+ expect(model.find(series_id: 1234).body).to be_a(Hash)
23
+ end
18
24
  end
19
25
 
20
- it 'should return Hash class for body reponse' do
21
- model.find(series_id: 1234).body == Hash
26
+ context 'normal attributes' do
27
+ it 'should return Faraday::Response class' do
28
+ expect(model.find(1234)).to be_a(Faraday::Response)
29
+ end
30
+
31
+ it 'should return Hash class for body reponse' do
32
+ expect(model.find(1234).body).to be_a(Hash)
33
+ end
22
34
  end
23
35
  end
24
36
 
25
37
  describe '.find_url' do
26
- it 'should return correct url' do
27
- model.find_url(series_id: 1234).should == 'http://thetvdb.com/api/123456789/series/1234/banners.xml'
38
+ context 'hash attributes' do
39
+ it 'should return correct url' do
40
+ expect(model.find_url(series_id: 1234)).to eq('http://thetvdb.com/api/123456789/series/1234/banners.xml')
41
+ end
42
+ end
43
+
44
+ context 'normal attributes' do
45
+ it 'should return correct url' do
46
+ expect(model.find_url(1234)).to eq('http://thetvdb.com/api/123456789/series/1234/banners.xml')
47
+ end
28
48
  end
29
49
  end
30
50
  end
@@ -0,0 +1,79 @@
1
+ require 'spec_helper'
2
+
3
+ class SampleClass < ThetvdbApi::Base; end
4
+
5
+ describe ThetvdbApi::Base do
6
+ let(:model) { SampleClass.new({}) }
7
+
8
+ describe '.normalize_series_id_options' do
9
+ it 'return correct hash with normal attributes' do
10
+ expect(model.normalize_series_id_options(1234)).
11
+ to eq({ series_id: 1234 })
12
+ end
13
+
14
+ it 'return correct hash with hash attributes' do
15
+ expect(model.normalize_series_id_options(series_id: 1234)).
16
+ to eq({ series_id: 1234 })
17
+ end
18
+ end
19
+
20
+ describe '.normalize_series_id_absolute_options' do
21
+ it 'return correct hash with normal attributes' do
22
+ expect(model.normalize_series_id_absolute_options(1234, 1)).
23
+ to eq({ series_id: 1234, absolute: 1 })
24
+ end
25
+
26
+ it 'return correct hash with hash attributes' do
27
+ expect(model.normalize_series_id_absolute_options(series_id: 1234, absolute: 1)).
28
+ to eq({ series_id: 1234, absolute: 1 })
29
+ end
30
+ end
31
+
32
+ describe '.normalize_series_id_episode_options' do
33
+ it 'normalize_series_id_episode_options' do
34
+ expect(model.normalize_series_id_episode_options(1234, 1, 2)).
35
+ to eq({ series_id: 1234, season: 1, episode: 2 })
36
+ end
37
+
38
+ it 'return correct hash with hash attributes' do
39
+ expect(model.normalize_series_id_episode_options(series_id: 1234, season: 1, episode: 2)).
40
+ to eq({ series_id: 1234, season: 1, episode: 2 })
41
+ end
42
+ end
43
+
44
+ describe '.normalize_episode_id_options' do
45
+ it 'return correct hash with normal attributes' do
46
+ expect(model.normalize_episode_id_options(1234)).
47
+ to eq({ episode_id: 1234 })
48
+ end
49
+
50
+ it 'return correct hash with hash attributes' do
51
+ expect(model.normalize_episode_id_options(episode_id: 1234)).
52
+ to eq({ episode_id: 1234 })
53
+ end
54
+ end
55
+
56
+ describe '.normalize_series_name_options' do
57
+ it 'return correct hash with normal attributes' do
58
+ expect(model.normalize_series_name_options('Buffy')).
59
+ to eq({ seriesname: 'Buffy' })
60
+ end
61
+
62
+ it 'return correct hash with hash attributes' do
63
+ expect(model.normalize_series_name_options(name: 'Buffy')).
64
+ to eq({ seriesname: 'Buffy' })
65
+ end
66
+ end
67
+
68
+ describe '.normalize_series_id_air_date_options' do
69
+ it 'return correct hash with normal attributes' do
70
+ expect(model.normalize_series_id_air_date_options('1234', '2000-01-01')).
71
+ to eq({ seriesid: '1234', airdate: '2000-01-01' })
72
+ end
73
+
74
+ it 'return correct hash with hash attributes' do
75
+ expect(model.normalize_series_id_air_date_options(series_id: '1234', air_date: '2000-01-01')).
76
+ to eq({ seriesid: '1234', airdate: '2000-01-01' })
77
+ end
78
+ end
79
+ end
@@ -16,70 +16,162 @@ describe ThetvdbApi::Episode do
16
16
  end
17
17
 
18
18
  describe '.find_by_default_order' do
19
- it 'should return Faraday::Response class' do
20
- model.find_by_default_order(series_id: 1234, season: 1, episode: 1).class.should == Faraday::Response
19
+ context 'hash attributes' do
20
+ it 'should return Faraday::Response class' do
21
+ expect(model.find_by_default_order(series_id: 1234, season: 1, episode: 1)).to be_a(Faraday::Response)
22
+ end
23
+
24
+ it 'should return Hash class for body reponse' do
25
+ expect(model.find_by_default_order(series_id: 1234, season: 1, episode: 1).body).to be_a(Hash)
26
+ end
21
27
  end
22
28
 
23
- it 'should return Hash class for body reponse' do
24
- model.find_by_default_order(series_id: 1234, season: 1, episode: 1).body == Hash
29
+ context 'normal attributes' do
30
+ it 'should return Faraday::Response class' do
31
+ expect(model.find_by_default_order(1234, 1, 1)).to be_a(Faraday::Response)
32
+ end
33
+
34
+ it 'should return Hash class for body reponse' do
35
+ expect(model.find_by_default_order(1234, 1, 1).body).to be_a(Hash)
36
+ end
25
37
  end
26
38
  end
27
39
 
28
40
  describe '.find_by_default_order_url' do
29
- it 'should return correct url' do
30
- model.find_by_default_order_url(series_id: 1234, season: 1, episode: 1).
31
- should == 'http://thetvdb.com/api/123456789/series/1234/default/1/1/en.xml'
41
+ context 'hash attributes' do
42
+ it 'should return correct url' do
43
+ expect(
44
+ model.find_by_default_order_url(series_id: 1234, season: 1, episode: 1)
45
+ ).to eq('http://thetvdb.com/api/123456789/series/1234/default/1/1/en.xml')
46
+ end
47
+ end
48
+
49
+ context 'normal attributes' do
50
+ it 'should return correct url' do
51
+ expect(
52
+ model.find_by_default_order_url(1234, 1, 1)
53
+ ).to eq('http://thetvdb.com/api/123456789/series/1234/default/1/1/en.xml')
54
+ end
32
55
  end
33
56
  end
34
57
 
35
58
  describe '.find_by_dvd_order' do
36
- it 'should return Faraday::Response class' do
37
- model.find_by_dvd_order(series_id: 1234, season: 1, episode: 1).class.should == Faraday::Response
59
+ context 'hash attributes' do
60
+ it 'should return Faraday::Response class' do
61
+ expect(model.find_by_dvd_order(series_id: 1234, season: 1, episode: 1)).to be_a(Faraday::Response)
62
+ end
63
+
64
+ it 'should return Hash class for body reponse' do
65
+ expect(model.find_by_dvd_order(series_id: 1234, season: 1, episode: 1).body).to be_a(Hash)
66
+ end
38
67
  end
39
68
 
40
- it 'should return Hash class for body reponse' do
41
- model.find_by_dvd_order(series_id: 1234, season: 1, episode: 1).body == Hash
69
+ context 'normal attributes' do
70
+ it 'should return Faraday::Response class' do
71
+ expect(model.find_by_dvd_order(1234, 1, 1)).to be_a(Faraday::Response)
72
+ end
73
+
74
+ it 'should return Hash class for body reponse' do
75
+ expect(model.find_by_dvd_order(1234, 1, 1).body).to be_a(Hash)
76
+ end
42
77
  end
43
78
  end
44
79
 
45
80
  describe '.find_by_dvd_order_url' do
46
- it 'should return correct url' do
47
- model.find_by_dvd_order_url(series_id: 1234, season: 1, episode: 1).
48
- should == 'http://thetvdb.com/api/123456789/series/1234/dvd/1/1/en.xml'
81
+ context 'hash attributes' do
82
+ it 'should return correct url' do
83
+ expect(
84
+ model.find_by_dvd_order_url(series_id: 1234, season: 1, episode: 1)
85
+ ).to eq('http://thetvdb.com/api/123456789/series/1234/dvd/1/1/en.xml')
86
+ end
87
+ end
88
+
89
+ context 'normal attributes' do
90
+ it 'should return correct url' do
91
+ expect(
92
+ model.find_by_dvd_order_url(1234, 1, 1)
93
+ ).to eq('http://thetvdb.com/api/123456789/series/1234/dvd/1/1/en.xml')
94
+ end
49
95
  end
50
96
  end
51
97
 
52
98
  describe '.find_by_absolute_order' do
53
- it 'should return Faraday::Response class' do
54
- model.find_by_absolute_order(series_id: 1234, absolute: 1).class.should == Faraday::Response
99
+ context 'hash attributes' do
100
+ it 'should return Faraday::Response class' do
101
+ expect(model.find_by_absolute_order(series_id: 1234, absolute: 1)).to be_a(Faraday::Response)
102
+ end
103
+
104
+ it 'should return Hash class for body reponse' do
105
+ expect(model.find_by_absolute_order(series_id: 1234, absolute: 1).body).to be_a(Hash)
106
+ end
55
107
  end
56
108
 
57
- it 'should return Hash class for body reponse' do
58
- model.find_by_absolute_order(series_id: 1234, absolute: 1).body == Hash
109
+ context 'normal attributes' do
110
+ it 'should return Faraday::Response class' do
111
+ expect(model.find_by_absolute_order(1234, 1)).to be_a(Faraday::Response)
112
+ end
113
+
114
+ it 'should return Hash class for body reponse' do
115
+ expect(model.find_by_absolute_order(1234, 1).body).to be_a(Hash)
116
+ end
59
117
  end
60
118
  end
61
119
 
62
120
  describe '.find_by_absolute_order_url' do
63
- it 'should return correct url' do
64
- model.find_by_absolute_order_url(series_id: 1234, absolute: 1).
65
- should == 'http://thetvdb.com/api/123456789/series/1234/absolute/1/en.xml'
121
+ context 'hash attributes' do
122
+ it 'should return correct url' do
123
+ expect(
124
+ model.find_by_absolute_order_url(series_id: 1234, absolute: 1)
125
+ ).to eq('http://thetvdb.com/api/123456789/series/1234/absolute/1/en.xml')
126
+ end
127
+ end
128
+
129
+ context 'normal attributes' do
130
+ it 'should return correct url' do
131
+ expect(
132
+ model.find_by_absolute_order_url(1234, 1)
133
+ ).to eq('http://thetvdb.com/api/123456789/series/1234/absolute/1/en.xml')
134
+ end
66
135
  end
67
136
  end
68
137
 
69
138
  describe '.find' do
70
- it 'should return Faraday::Response class' do
71
- model.find(episode_id: 1234).class.should == Faraday::Response
139
+ context 'hash attributes' do
140
+ it 'should return Faraday::Response class' do
141
+ expect(model.find(episode_id: 1234)).to be_a(Faraday::Response)
142
+ end
143
+
144
+ it 'should return Hash class for body reponse' do
145
+ expect(model.find(episode_id: 1234).body).to be_a(Hash)
146
+ end
72
147
  end
73
148
 
74
- it 'should return Hash class for body reponse' do
75
- model.find(episode_id: 1234).body == Hash
149
+ context 'normal attributes' do
150
+ it 'should return Faraday::Response class' do
151
+ expect(model.find(1234)).to be_a(Faraday::Response)
152
+ end
153
+
154
+ it 'should return Hash class for body reponse' do
155
+ expect(model.find(1234).body).to be_a(Hash)
156
+ end
76
157
  end
77
158
  end
78
159
 
79
160
  describe '.find_url' do
80
- it 'should return correct url' do
81
- model.find_url(episode_id: 1234).
82
- should == 'http://thetvdb.com/api/123456789/episodes/1234/en.xml'
161
+ context 'hash attributes' do
162
+ it 'should return correct url' do
163
+ expect(
164
+ model.find_url(episode_id: 1234)
165
+ ).to eq('http://thetvdb.com/api/123456789/episodes/1234/en.xml')
166
+ end
167
+ end
168
+
169
+ context 'normal attributes' do
170
+ it 'should return correct url' do
171
+ expect(
172
+ model.find_url(1234)
173
+ ).to eq('http://thetvdb.com/api/123456789/episodes/1234/en.xml')
174
+ end
83
175
  end
84
176
  end
85
177
  end