rbrainz 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. data/CHANGES +31 -0
  2. data/LICENSE +1 -1
  3. data/README +3 -2
  4. data/Rakefile +40 -22
  5. data/TODO +6 -23
  6. data/doc/README.rdoc +50 -21
  7. data/examples/getartist.rb +6 -4
  8. data/examples/getuser.rb +30 -0
  9. data/examples/searchartists.rb +35 -0
  10. data/lib/rbrainz.rb +12 -7
  11. data/lib/rbrainz/core_ext.rb +8 -0
  12. data/lib/rbrainz/core_ext/mbid.rb +30 -0
  13. data/lib/rbrainz/core_ext/net_http_digest.rb +52 -0
  14. data/lib/rbrainz/core_ext/range.rb +28 -0
  15. data/lib/rbrainz/core_ext/range/equality.rb +232 -0
  16. data/lib/rbrainz/data/countrynames.rb +7 -5
  17. data/lib/rbrainz/data/languagenames.rb +8 -5
  18. data/lib/rbrainz/data/releasetypenames.rb +34 -0
  19. data/lib/rbrainz/data/scriptnames.rb +8 -5
  20. data/lib/rbrainz/model.rb +27 -35
  21. data/lib/rbrainz/model/alias.rb +31 -7
  22. data/lib/rbrainz/model/artist.rb +30 -41
  23. data/lib/rbrainz/model/collection.rb +102 -0
  24. data/lib/rbrainz/model/default_factory.rb +78 -0
  25. data/lib/rbrainz/model/disc.rb +45 -8
  26. data/lib/rbrainz/model/entity.rb +122 -53
  27. data/lib/rbrainz/model/incomplete_date.rb +31 -47
  28. data/lib/rbrainz/model/individual.rb +103 -0
  29. data/lib/rbrainz/model/label.rb +42 -33
  30. data/lib/rbrainz/model/mbid.rb +111 -40
  31. data/lib/rbrainz/model/relation.rb +78 -14
  32. data/lib/rbrainz/model/release.rb +119 -31
  33. data/lib/rbrainz/model/release_event.rb +38 -9
  34. data/lib/rbrainz/model/scored_collection.rb +99 -0
  35. data/lib/rbrainz/model/tag.rb +39 -0
  36. data/lib/rbrainz/model/track.rb +37 -13
  37. data/lib/rbrainz/model/user.rb +48 -0
  38. data/lib/rbrainz/utils.rb +9 -0
  39. data/lib/rbrainz/utils/data.rb +78 -0
  40. data/lib/rbrainz/utils/helper.rb +22 -0
  41. data/lib/rbrainz/version.rb +15 -0
  42. data/lib/rbrainz/webservice.rb +32 -6
  43. data/lib/rbrainz/webservice/filter.rb +124 -47
  44. data/lib/rbrainz/webservice/includes.rb +49 -10
  45. data/lib/rbrainz/webservice/mbxml.rb +228 -173
  46. data/lib/rbrainz/webservice/query.rb +312 -25
  47. data/lib/rbrainz/webservice/webservice.rb +164 -27
  48. data/test/lib/mock_webservice.rb +53 -0
  49. data/test/lib/test_entity.rb +27 -8
  50. data/test/lib/test_factory.rb +47 -0
  51. data/test/lib/testing_helper.rb +7 -5
  52. data/test/test-data/invalid/artist/tags_1.xml +6 -0
  53. data/test/test-data/valid/artist/Tchaikovsky-2.xml +12 -0
  54. data/test/test-data/valid/label/Atlantic_Records_2.xml +3 -0
  55. data/test/test-data/valid/label/Atlantic_Records_3.xml +11 -0
  56. data/test/test-data/valid/release/Highway_61_Revisited_2.xml +12 -0
  57. data/test/test-data/valid/track/Silent_All_These_Years_6.xml +8 -0
  58. data/test/test_alias.rb +13 -7
  59. data/test/test_artist.rb +26 -4
  60. data/test/test_artist_filter.rb +11 -6
  61. data/test/test_artist_includes.rb +11 -6
  62. data/test/test_collection.rb +66 -0
  63. data/test/test_default_factory.rb +75 -0
  64. data/test/test_disc.rb +9 -4
  65. data/test/test_incomplete_date.rb +21 -14
  66. data/test/test_label.rb +56 -18
  67. data/test/test_label_filter.rb +10 -5
  68. data/test/test_label_includes.rb +11 -6
  69. data/test/test_mbid.rb +34 -19
  70. data/test/test_mbxml.rb +242 -72
  71. data/test/test_query.rb +92 -7
  72. data/test/test_range_equality.rb +144 -0
  73. data/test/test_relation.rb +18 -7
  74. data/test/test_release.rb +15 -4
  75. data/test/test_release_event.rb +16 -4
  76. data/test/test_release_filter.rb +11 -5
  77. data/test/test_release_includes.rb +11 -6
  78. data/test/test_scored_collection.rb +86 -0
  79. data/test/test_tag.rb +39 -0
  80. data/test/test_track.rb +15 -4
  81. data/test/test_track_filter.rb +11 -5
  82. data/test/test_track_includes.rb +11 -6
  83. data/test/test_utils.rb +41 -0
  84. data/test/test_webservice.rb +16 -17
  85. metadata +93 -57
@@ -0,0 +1,75 @@
1
+ # $Id: test_default_factory.rb 134 2007-07-16 08:46:55Z phw $
2
+ #
3
+ # Author:: Philipp Wolfer (mailto:phw@rubyforge.org)
4
+ # Copyright:: Copyright (c) 2007, Philipp Wolfer
5
+ # License:: RBrainz is free software distributed under a BSD style license.
6
+ # See LICENSE[file:../LICENSE.html] for permissions.
7
+
8
+ require 'test/unit'
9
+ require 'rbrainz/model'
10
+ include MusicBrainz
11
+
12
+ # Unit test for the Alias model.
13
+ class TestDefaultFactory < Test::Unit::TestCase
14
+
15
+ def setup
16
+ end
17
+
18
+ def teardown
19
+ end
20
+
21
+ def test_new_artist
22
+ factory = Model::DefaultFactory.new
23
+ assert factory.new_artist.is_a?(Model::Artist)
24
+ assert factory.new_entity(:artist).is_a?(Model::Artist)
25
+ end
26
+
27
+ def test_new_label
28
+ factory = Model::DefaultFactory.new
29
+ assert factory.new_label.is_a?(Model::Label)
30
+ assert factory.new_entity(:label).is_a?(Model::Label)
31
+ end
32
+
33
+ def test_new_release
34
+ factory = Model::DefaultFactory.new
35
+ assert factory.new_release.is_a?(Model::Release)
36
+ assert factory.new_entity(:release).is_a?(Model::Release)
37
+ end
38
+
39
+ def test_new_track
40
+ factory = Model::DefaultFactory.new
41
+ assert factory.new_track.is_a?(Model::Track)
42
+ assert factory.new_entity(:track).is_a?(Model::Track)
43
+ end
44
+
45
+ def test_new_alias
46
+ factory = Model::DefaultFactory.new
47
+ assert factory.new_alias.is_a?(Model::Alias)
48
+ end
49
+
50
+ def test_new_disc
51
+ factory = Model::DefaultFactory.new
52
+ assert factory.new_disc.is_a?(Model::Disc)
53
+ end
54
+
55
+ def test_new_relation
56
+ factory = Model::DefaultFactory.new
57
+ assert factory.new_relation.is_a?(Model::Relation)
58
+ end
59
+
60
+ def test_new_release_event
61
+ factory = Model::DefaultFactory.new
62
+ assert factory.new_release_event.is_a?(Model::ReleaseEvent)
63
+ end
64
+
65
+ def test_new_tag
66
+ factory = Model::DefaultFactory.new
67
+ assert factory.new_tag.is_a?(Model::Tag)
68
+ end
69
+
70
+ def test_new_user
71
+ factory = Model::DefaultFactory.new
72
+ assert factory.new_user.is_a?(Model::User)
73
+ end
74
+
75
+ end
data/test/test_disc.rb CHANGED
@@ -1,7 +1,9 @@
1
- # $Id: test_disc.rb 27 2007-05-28 23:15:21Z phw $
2
- # Copyright (c) 2007, Philipp Wolfer
3
- # All rights reserved.
4
- # See LICENSE for permissions.
1
+ # $Id: test_disc.rb 138 2007-07-17 09:05:01Z phw $
2
+ #
3
+ # Author:: Philipp Wolfer (mailto:phw@rubyforge.org)
4
+ # Copyright:: Copyright (c) 2007, Philipp Wolfer
5
+ # License:: RBrainz is free software distributed under a BSD style license.
6
+ # See LICENSE[file:../LICENSE.html] for permissions.
5
7
 
6
8
  require 'test/unit'
7
9
  require 'rbrainz/model'
@@ -19,6 +21,8 @@ class TestDisc < Test::Unit::TestCase
19
21
  def test_new_disc
20
22
  disc = nil
21
23
  assert_nothing_raised {disc = Model::Disc.new}
24
+ assert_nothing_raised {disc = Model::Disc.new('Tit3F0Do_sZ_7NbfM_1vlEbF0wo-')}
25
+ assert_equal 'Tit3F0Do_sZ_7NbfM_1vlEbF0wo-', disc.id
22
26
  end
23
27
 
24
28
  def test_id
@@ -26,6 +30,7 @@ class TestDisc < Test::Unit::TestCase
26
30
  assert disc.id.nil?
27
31
  assert_nothing_raised {disc.id = 'Tit3F0Do_sZ_7NbfM_1vlEbF0wo-'}
28
32
  assert_equal 'Tit3F0Do_sZ_7NbfM_1vlEbF0wo-', disc.id
33
+ assert_equal 'Tit3F0Do_sZ_7NbfM_1vlEbF0wo-', disc.to_s
29
34
  end
30
35
 
31
36
  def test_sectors
@@ -1,7 +1,9 @@
1
- # $Id: test_incomplete_date.rb 27 2007-05-28 23:15:21Z phw $
2
- # Copyright (c) 2007, Philipp Wolfer
3
- # All rights reserved.
4
- # See LICENSE for permissions.
1
+ # $Id: test_incomplete_date.rb 97 2007-07-06 13:52:29Z nigel_graham $
2
+ #
3
+ # Author:: Philipp Wolfer (mailto:phw@rubyforge.org)
4
+ # Copyright:: Copyright (c) 2007, Philipp Wolfer
5
+ # License:: RBrainz is free software distributed under a BSD style license.
6
+ # See LICENSE[file:../LICENSE.html] for permissions.
5
7
 
6
8
  require 'test/unit'
7
9
  require 'rbrainz/model'
@@ -31,11 +33,12 @@ class TestIncompleteDate < Test::Unit::TestCase
31
33
  assert_equal 1969, date.year
32
34
  assert_equal 1, date.month
33
35
  assert_equal 5, date.day
34
- assert_nothing_raised {date = Model::IncompleteDate.new(nil)}
35
- assert_equal nil, date.year
36
+ # assert_nothing_raised {date = Model::IncompleteDate.new(nil)}
37
+ # assert_equal nil, date.year
36
38
  end
37
39
 
38
40
  def test_invalid_format
41
+ assert_raise(ArgumentError) {date = Model::IncompleteDate.new(nil)}
39
42
  assert_raise(ArgumentError) {date = Model::IncompleteDate.new('69-01-05')}
40
43
  assert_raise(ArgumentError) {date = Model::IncompleteDate.new(69)}
41
44
  assert_raise(ArgumentError) {date = Model::IncompleteDate.new('1969/01/05')}
@@ -48,13 +51,17 @@ class TestIncompleteDate < Test::Unit::TestCase
48
51
  assert_equal '1980', @date_year.to_s
49
52
  end
50
53
 
51
- def test_equality
52
- assert_equal(@date_year_month_day, @date_year_month,
53
- "#{@date_year_month_day.to_s} <=> #{@date_year_month.to_s}")
54
- assert_equal(@date_year_month, @date_year,
55
- "#{@date_year_month.to_s} <=> #{@date_year.to_s}")
56
- assert_equal(@date_year, @date_year_month_day,
57
- "#{@date_year.to_s} <=> #{@date_year_month_day.to_s}")
54
+ def test_range
55
+ assert_equal Date.civil(1980,8,22), @date_year_month_day.begin
56
+ assert_equal Date.civil(1980,8,23), @date_year_month_day.end
57
+ assert @date_year_month_day.exclude_end?
58
+
59
+ assert_equal Date.civil(1980, 8, 1), @date_year_month.begin
60
+ assert_equal Date.civil(1980, 9, 1), @date_year_month.end
61
+ assert @date_year_month.exclude_end?
62
+
63
+ assert_equal Date.civil(1980, 1, 1), @date_year.begin
64
+ assert_equal Date.civil(1981, 1, 1), @date_year.end
65
+ assert @date_year.exclude_end?
58
66
  end
59
-
60
67
  end
data/test/test_label.rb CHANGED
@@ -1,7 +1,9 @@
1
- # $Id: test_label.rb 30 2007-05-29 02:12:33Z phw $
2
- # Copyright (c) 2007, Philipp Wolfer
3
- # All rights reserved.
4
- # See LICENSE for permissions.
1
+ # $Id: test_label.rb 138 2007-07-17 09:05:01Z phw $
2
+ #
3
+ # Author:: Philipp Wolfer (mailto:phw@rubyforge.org)
4
+ # Copyright:: Copyright (c) 2007, Philipp Wolfer
5
+ # License:: RBrainz is free software distributed under a BSD style license.
6
+ # See LICENSE[file:../LICENSE.html] for permissions.
5
7
 
6
8
  require 'test_entity'
7
9
 
@@ -12,6 +14,7 @@ class TestLabel < Test::Unit::TestCase
12
14
  @tested_class = Model::Label
13
15
  @invalid_entity_types = [:artist, :release, :track]
14
16
  @releases = [Model::Release.new, Model::Release.new]
17
+ @aliases = [Model::Alias.new, Model::Alias.new]
15
18
  end
16
19
 
17
20
  def teardown
@@ -24,6 +27,18 @@ class TestLabel < Test::Unit::TestCase
24
27
  label = nil
25
28
  assert_nothing_raised {label = Model::Label.new}
26
29
  assert label.is_a?(Model::Entity)
30
+
31
+ mbid = Model::MBID.new('9d30e408-1559-448b-b491-2f8de1583ccf', label.entity_type)
32
+ assert_nothing_raised {label = Model::Label.new(
33
+ mbid,
34
+ Model::Label::TYPE_ORIGINAL_PRODUCTION,
35
+ 'Century Media',
36
+ 'Century Media'
37
+ )}
38
+ assert_equal mbid, label.id
39
+ assert_equal Model::Label::TYPE_ORIGINAL_PRODUCTION, label.type
40
+ assert_equal 'Century Media', label.name
41
+ assert_equal 'Century Media', label.sort_name
27
42
  end
28
43
 
29
44
  def test_name
@@ -47,6 +62,14 @@ class TestLabel < Test::Unit::TestCase
47
62
  assert_equal 'Disambiguation comment', label.disambiguation
48
63
  end
49
64
 
65
+ def test_unique_name
66
+ label = Model::Label.new
67
+ label.name = 'EMI'
68
+ label.disambiguation = 'Taiwan'
69
+ assert_equal 'EMI (Taiwan)', label.unique_name
70
+ assert_equal 'EMI (Taiwan)', label.to_s
71
+ end
72
+
50
73
  def test_code
51
74
  label = Model::Label.new
52
75
  assert label.code.nil?
@@ -76,32 +99,32 @@ class TestLabel < Test::Unit::TestCase
76
99
  assert_equal Model::Label::TYPE_REISSUE_PRODUCTION, label.type
77
100
  end
78
101
 
79
- def test_founding_date
102
+ def test_begin_date
80
103
  label = Model::Label.new
81
104
  date = Model::IncompleteDate.new '1988-04-18'
82
- assert_nothing_raised {label.founding_date}
83
- assert_equal nil, label.founding_date
84
- assert_nothing_raised {label.founding_date = date}
85
- assert_equal date, label.founding_date
105
+ assert_nothing_raised {label.begin_date}
106
+ assert_equal nil, label.begin_date
107
+ assert_nothing_raised {label.begin_date = date}
108
+ assert_equal date, label.begin_date
86
109
 
87
110
  # It should be able to supply a date as a string,
88
111
  # but Label should convert it to an IncompleteDate.
89
- assert_nothing_raised {label.founding_date = '1988-04-20'}
90
- assert_equal Model::IncompleteDate.new('1988-04-20'), label.founding_date
112
+ assert_nothing_raised {label.begin_date = '1988-04-20'}
113
+ assert_equal Model::IncompleteDate.new('1988-04-20'), label.begin_date
91
114
  end
92
115
 
93
- def test_dissolving_date
116
+ def test_end_date
94
117
  label = Model::Label.new
95
118
  date = Model::IncompleteDate.new '1988-04-18'
96
- assert_nothing_raised {label.dissolving_date}
97
- assert_equal nil, label.dissolving_date
98
- assert_nothing_raised {label.dissolving_date = date}
99
- assert_equal date, label.dissolving_date
119
+ assert_nothing_raised {label.end_date}
120
+ assert_equal nil, label.end_date
121
+ assert_nothing_raised {label.end_date = date}
122
+ assert_equal date, label.end_date
100
123
 
101
124
  # It should be able to supply a date as a string,
102
125
  # but Label should convert it to an IncompleteDate.
103
- assert_nothing_raised {label.dissolving_date = '1988-04-20'}
104
- assert_equal Model::IncompleteDate.new('1988-04-20'), label.dissolving_date
126
+ assert_nothing_raised {label.end_date = '1988-04-20'}
127
+ assert_equal Model::IncompleteDate.new('1988-04-20'), label.end_date
105
128
  end
106
129
 
107
130
  # Many releases can be added
@@ -119,4 +142,19 @@ class TestLabel < Test::Unit::TestCase
119
142
  assert_equal 0, label.releases.size
120
143
  end
121
144
 
145
+ # Many aliases can be added
146
+ def test_add_and_remove_aliases
147
+ label = Model::Label.new
148
+ assert_equal 0, label.aliases.size
149
+ assert_nothing_raised {label.aliases << @aliases[0]}
150
+ assert_equal 1, label.aliases.size
151
+ assert_nothing_raised {label.aliases << @aliases[1]}
152
+ assert_equal 2, label.aliases.size
153
+
154
+ assert_nothing_raised {label.aliases.delete @aliases[1]}
155
+ assert_equal 1, label.aliases.size
156
+ assert_nothing_raised {label.aliases.delete @aliases[0]}
157
+ assert_equal 0, label.aliases.size
158
+ end
159
+
122
160
  end
@@ -1,7 +1,9 @@
1
- # $Id: test_label_filter.rb 27 2007-05-28 23:15:21Z phw $
2
- # Copyright (c) 2007, Philipp Wolfer
3
- # All rights reserved.
4
- # See LICENSE for permissions.
1
+ # $Id: test_label_filter.rb 121 2007-07-12 08:56:19Z phw $
2
+ #
3
+ # Author:: Philipp Wolfer (mailto:phw@rubyforge.org)
4
+ # Copyright:: Copyright (c) 2007, Philipp Wolfer
5
+ # License:: RBrainz is free software distributed under a BSD style license.
6
+ # See LICENSE[file:../LICENSE.html] for permissions.
5
7
 
6
8
  require 'test/unit'
7
9
  require 'testing_helper'
@@ -12,7 +14,8 @@ include MusicBrainz
12
14
  class TestLabelFilter < Test::Unit::TestCase
13
15
 
14
16
  def setup
15
- @filter_hash = {:name => 'Century Media', :limit => 10}
17
+ @filter_hash = {:name => 'Century Media', :limit => 10, :offset => 20,
18
+ :query => 'alias:Century Media OR alias:Century'}
16
19
  end
17
20
 
18
21
  def teardown
@@ -26,6 +29,8 @@ class TestLabelFilter < Test::Unit::TestCase
26
29
  result_hash = query_string_to_hash filter_string
27
30
  assert_equal @filter_hash[:name], result_hash['name'], filter_string
28
31
  assert_equal @filter_hash[:limit].to_s, result_hash['limit'], filter_string
32
+ assert_equal @filter_hash[:offset].to_s, result_hash['offset'], filter_string
33
+ assert_equal @filter_hash[:query].to_s, result_hash['query'], filter_string
29
34
  end
30
35
 
31
36
  def test_empty_filter
@@ -1,7 +1,9 @@
1
- # $Id: test_label_includes.rb 27 2007-05-28 23:15:21Z phw $
2
- # Copyright (c) 2007, Philipp Wolfer
3
- # All rights reserved.
4
- # See LICENSE for permissions.
1
+ # $Id: test_label_includes.rb 118 2007-07-11 22:46:58Z phw $
2
+ #
3
+ # Author:: Philipp Wolfer (mailto:phw@rubyforge.org)
4
+ # Copyright:: Copyright (c) 2007, Philipp Wolfer
5
+ # License:: RBrainz is free software distributed under a BSD style license.
6
+ # See LICENSE[file:../LICENSE.html] for permissions.
5
7
 
6
8
  require 'test/unit'
7
9
  require 'rbrainz'
@@ -23,7 +25,8 @@ class TestLabelIncludes < Test::Unit::TestCase
23
25
  :release_rels => true,
24
26
  :track_rels => true,
25
27
  :label_rels => true,
26
- :url_rels => true
28
+ :url_rels => true,
29
+ :tags => true
27
30
  )
28
31
  result_string = includes.to_s
29
32
  assert_equal 'inc=', result_string[0..3]
@@ -35,6 +38,7 @@ class TestLabelIncludes < Test::Unit::TestCase
35
38
  assert result_array.include?('track-rels')
36
39
  assert result_array.include?('label-rels')
37
40
  assert result_array.include?('url-rels')
41
+ assert result_array.include?('tags')
38
42
  end
39
43
 
40
44
  def test_empty_includes
@@ -44,7 +48,8 @@ class TestLabelIncludes < Test::Unit::TestCase
44
48
  :release_rels => false,
45
49
  :track_rels => false,
46
50
  :label_rels => false,
47
- :url_rels => false
51
+ :url_rels => false,
52
+ :tags => false
48
53
  )
49
54
  assert_equal '', includes.to_s
50
55
 
data/test/test_mbid.rb CHANGED
@@ -1,7 +1,9 @@
1
- # $Id: test_mbid.rb 27 2007-05-28 23:15:21Z phw $
2
- # Copyright (c) 2007, Philipp Wolfer
3
- # All rights reserved.
4
- # See LICENSE for permissions.
1
+ # $Id: test_mbid.rb 142 2007-07-17 15:49:57Z phw $
2
+ #
3
+ # Author:: Philipp Wolfer (mailto:phw@rubyforge.org)
4
+ # Copyright:: Copyright (c) 2007, Philipp Wolfer
5
+ # License:: RBrainz is free software distributed under a BSD style license.
6
+ # See LICENSE[file:../LICENSE.html] for permissions.
5
7
 
6
8
  require 'test/unit'
7
9
  require 'rbrainz/model'
@@ -25,35 +27,48 @@ class TestMBID < Test::Unit::TestCase
25
27
  def teardown
26
28
  end
27
29
 
28
- def test_private_new
29
- assert_raise(NoMethodError) {Model::MBID.new}
30
+ def test_parse
31
+ assert_equal 'http://musicbrainz.org/artist/9d30e408-1559-448b-b491-2f8de1583ccf',
32
+ Model::MBID.parse(
33
+ 'http://musicbrainz.org/artist/9d30e408-1559-448b-b491-2f8de1583ccf',
34
+ :artist).to_s
35
+ assert_equal 'http://musicbrainz.org/artist/9d30e408-1559-448b-b491-2f8de1583ccf',
36
+ Model::MBID.parse(
37
+ '9d30e408-1559-448b-b491-2f8de1583ccf',
38
+ :artist ).to_s
39
+ assert_raise(Model::EntityTypeNotMatchingError) {
40
+ Model::MBID.parse(
41
+ 'http://musicbrainz.org/artist/9d30e408-1559-448b-b491-2f8de1583ccf',
42
+ :label )
43
+ }
44
+ assert_equal Model::VARIOUS_ARTISTS_ID, Model::MBID.parse('http://musicbrainz.org/artist/89ad4ac3-39f7-470e-963a-56509c546377')
30
45
  end
31
46
 
32
47
  def test_from_uri
33
48
  @valid_entities.each{|entity|
34
49
  @valid_uuids.each{|uuid|
35
50
  assert_nothing_raised \
36
- {Model::MBID.from_uri 'http://musicbrainz.org/' + entity.to_s + '/' + uuid}
51
+ {Model::MBID.parse 'http://musicbrainz.org/' + entity.to_s + '/' + uuid }
37
52
  }
38
53
  }
39
54
  @invalid_uris.each{|uri|
40
- assert_raise(Model::InvalidMBIDError) {Model::MBID.from_uri uri}
55
+ assert_raise(Model::InvalidMBIDError, uri) {Model::MBID.parse uri}
41
56
  }
42
57
  end
43
58
 
44
59
  def test_from_uuid
45
60
  @valid_entities.each{|entity|
46
61
  @valid_uuids.each{|uuid|
47
- assert_nothing_raised {Model::MBID.from_uuid entity, uuid}
62
+ assert_nothing_raised {Model::MBID.parse uuid, entity}
48
63
  }
49
64
  }
50
65
  @invalid_entities.each{|entity|
51
66
  assert_raise(Model::UnknownEntityError, 'Invalid entity ' + entity.inspect + '') \
52
- {Model::MBID.from_uuid entity, @valid_uuids[0]}
67
+ {Model::MBID.parse @valid_uuids[0], entity}
53
68
  }
54
69
  @invalid_uuids.each{|uuid|
55
- assert_raise(Model::InvalidUUIDError, 'Invalid uuid ' + uuid.inspect + '') \
56
- {Model::MBID.from_uuid @valid_entities[0], uuid}
70
+ assert_raise(Model::InvalidMBIDError, uuid.inspect) \
71
+ {Model::MBID.parse uuid, @valid_entities[0]}
57
72
  }
58
73
  end
59
74
 
@@ -61,9 +76,9 @@ class TestMBID < Test::Unit::TestCase
61
76
  @valid_entities.each{|entity|
62
77
  @valid_uuids.each{|uuid|
63
78
  uri = 'http://musicbrainz.org/' + entity.to_s + '/' + uuid
64
- mbid = Model::MBID.from_uuid entity, uuid
79
+ mbid = Model::MBID.parse uuid, entity
65
80
  assert_equal uri, mbid.to_s
66
- mbid = Model::MBID.from_uri uri
81
+ mbid = Model::MBID.parse uri
67
82
  assert_equal uri, mbid.to_s
68
83
  }
69
84
  }
@@ -72,10 +87,10 @@ class TestMBID < Test::Unit::TestCase
72
87
  def test_read_attributes
73
88
  @valid_entities.each{|entity|
74
89
  @valid_uuids.each{|uuid|
75
- mbid = Model::MBID.from_uuid entity, uuid
90
+ mbid = Model::MBID.parse uuid, entity
76
91
  assert_equal entity.to_sym, mbid.entity
77
92
  assert_equal uuid, mbid.uuid
78
- mbid = Model::MBID.from_uri 'http://musicbrainz.org/' + entity.to_s + '/' + uuid
93
+ mbid = Model::MBID.parse 'http://musicbrainz.org/' + entity.to_s + '/' + uuid
79
94
  assert_equal entity.to_sym, mbid.entity
80
95
  assert_equal uuid, mbid.uuid
81
96
  }
@@ -84,14 +99,14 @@ class TestMBID < Test::Unit::TestCase
84
99
 
85
100
  # Test if the attributes are read only.
86
101
  def test_write_attributes
87
- mbid = Model::MBID.from_uuid @valid_entities[0], @valid_uuids[0]
102
+ mbid = Model::MBID.parse @valid_uuids[0], @valid_entities[0]
88
103
  assert_raise(NoMethodError) {mbid.entity = :release}
89
104
  assert_raise(NoMethodError) {mbid.uuid = @valid_uuids[0]}
90
105
  end
91
106
 
92
107
  def test_equality
93
- mbid1 = Model::MBID.from_uuid @valid_entities[0], @valid_uuids[0]
94
- mbid2 = Model::MBID.from_uuid @valid_entities[0], @valid_uuids[0]
108
+ mbid1 = Model::MBID.parse @valid_uuids[0], @valid_entities[0]
109
+ mbid2 = Model::MBID.parse @valid_uuids[0], @valid_entities[0]
95
110
  assert_equal mbid1, mbid1
96
111
  assert_equal mbid1, mbid2
97
112
  end