shortwave 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +10 -0
- data/.gitmodules +3 -0
- data/LICENSE +20 -0
- data/README.rdoc +74 -0
- data/Rakefile +133 -0
- data/VERSION +1 -0
- data/lib/shortwave.rb +12 -0
- data/lib/shortwave/authentication.rb +107 -0
- data/lib/shortwave/facade.rb +3 -0
- data/lib/shortwave/facade/build/facade_builder.rb +199 -0
- data/lib/shortwave/facade/build/facade_template.erb +17 -0
- data/lib/shortwave/facade/lastfm.rb +878 -0
- data/lib/shortwave/facade/remote.rb +86 -0
- data/lib/shortwave/model/album.rb +33 -0
- data/lib/shortwave/model/artist.rb +62 -0
- data/lib/shortwave/model/base_model.rb +112 -0
- data/lib/shortwave/model/chart_dates.rb +15 -0
- data/lib/shortwave/model/comparison.rb +15 -0
- data/lib/shortwave/model/event.rb +55 -0
- data/lib/shortwave/model/group.rb +26 -0
- data/lib/shortwave/model/location.rb +45 -0
- data/lib/shortwave/model/playlist.rb +36 -0
- data/lib/shortwave/model/shout.rb +21 -0
- data/lib/shortwave/model/tag.rb +47 -0
- data/lib/shortwave/model/track.rb +71 -0
- data/lib/shortwave/model/user.rb +70 -0
- data/lib/shortwave/model/venue.rb +37 -0
- data/lib/shortwave/model/weekly_charts.rb +31 -0
- data/lib/shortwave/providers.rb +161 -0
- data/shortwave.gemspec +178 -0
- data/test/authentication_test.rb +64 -0
- data/test/build/build_test.rb +25 -0
- data/test/build/data/intro.yml +2 -0
- data/test/build/data/screens/album_addTags.html +1238 -0
- data/test/build/data/screens/intro_truncated.html +426 -0
- data/test/build/data/screens/tasteometer_compare.html +1274 -0
- data/test/build/data/screens/user_getLovedTracks.html +1278 -0
- data/test/build/data/screens/venue_search.html +1261 -0
- data/test/build/facade_builder_test.rb +23 -0
- data/test/build/parameter_test.rb +43 -0
- data/test/build/remote_method_test.rb +47 -0
- data/test/build/ruby_class_test.rb +12 -0
- data/test/build/ruby_method_test.rb +137 -0
- data/test/helper.rb +35 -0
- data/test/model/album_test.rb +62 -0
- data/test/model/artist_test.rb +103 -0
- data/test/model/chart_dates_test.rb +11 -0
- data/test/model/comparison_test.rb +18 -0
- data/test/model/data/album_info.xml +38 -0
- data/test/model/data/album_search.xml +210 -0
- data/test/model/data/artist_info.xml +58 -0
- data/test/model/data/artist_search.xml +109 -0
- data/test/model/data/artist_shouts.xml +546 -0
- data/test/model/data/artist_top_fans.xml +405 -0
- data/test/model/data/event_info.xml +47 -0
- data/test/model/data/group_members.xml +242 -0
- data/test/model/data/group_weekly_album_chart.xml +1754 -0
- data/test/model/data/group_weekly_artist_chart.xml +604 -0
- data/test/model/data/group_weekly_track_chart.xml +1005 -0
- data/test/model/data/location_events.xml +383 -0
- data/test/model/data/ok.xml +2 -0
- data/test/model/data/playlist_fetch.xml +227 -0
- data/test/model/data/tag_search.xml +110 -0
- data/test/model/data/tag_similar.xml +254 -0
- data/test/model/data/tag_top_albums.xml +805 -0
- data/test/model/data/tag_top_artists.xml +605 -0
- data/test/model/data/tag_top_tags.xml +1254 -0
- data/test/model/data/tag_top_tracks.xml +843 -0
- data/test/model/data/tag_weekly_chart_list.xml +57 -0
- data/test/model/data/tasteometer_compare.xml +54 -0
- data/test/model/data/track_info.xml +53 -0
- data/test/model/data/track_search.xml +195 -0
- data/test/model/data/user_chartlist.xml +90 -0
- data/test/model/data/user_info.xml +16 -0
- data/test/model/data/user_neighbours.xml +484 -0
- data/test/model/data/user_playlists.xml +17 -0
- data/test/model/data/user_recent_tracks.xml +124 -0
- data/test/model/data/user_recommended_artists.xml +454 -0
- data/test/model/data/user_shouts.xml +9 -0
- data/test/model/data/user_weekly_artist_chart.xml +478 -0
- data/test/model/data/venue_events.xml +556 -0
- data/test/model/data/venue_past_events.xml +1778 -0
- data/test/model/data/venue_search.xml +355 -0
- data/test/model/event_test.rb +63 -0
- data/test/model/group_test.rb +45 -0
- data/test/model/location_test.rb +25 -0
- data/test/model/playlist_test.rb +51 -0
- data/test/model/shout_test.rb +23 -0
- data/test/model/tag_test.rb +39 -0
- data/test/model/track_test.rb +67 -0
- data/test/model/user_test.rb +125 -0
- data/test/model/venue_test.rb +60 -0
- data/test/provider/album_provider_test.rb +26 -0
- data/test/provider/artist_provider_test.rb +25 -0
- data/test/provider/group_provider_test.rb +9 -0
- data/test/provider/location_provider_test.rb +9 -0
- data/test/provider/playlist_provider_test.rb +12 -0
- data/test/provider/tag_provider_test.rb +24 -0
- data/test/provider/track_provider_test.rb +26 -0
- data/test/provider/user_provider_test.rb +11 -0
- data/test/provider/venue_provider_test.rb +15 -0
- data/test/provider_test_helper.rb +27 -0
- data/test/remote_test.rb +26 -0
- metadata +209 -0
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class LocationTest < Test::Unit::TestCase
|
4
|
+
include ProviderTestHelper
|
5
|
+
|
6
|
+
def setup
|
7
|
+
super
|
8
|
+
@location = StubSession.new.location.build(:country => "United Kingdom", :city => "London")
|
9
|
+
end
|
10
|
+
|
11
|
+
test "has artists" do
|
12
|
+
expect_get "method=geo.getTopArtists&country=United%20Kingdom", :artist_search
|
13
|
+
assert @location.artists.first.kind_of? Model::Artist
|
14
|
+
end
|
15
|
+
|
16
|
+
test "has tracks" do
|
17
|
+
expect_get "method=geo.getTopTracks&country=United%20Kingdom&location=London", :track_search
|
18
|
+
assert @location.tracks.first.kind_of? Model::Track
|
19
|
+
end
|
20
|
+
|
21
|
+
test "has events" do
|
22
|
+
expect_get "method=geo.getEvents&location=London", :location_events
|
23
|
+
assert @location.events.first.kind_of? Model::Event
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class PlaylistTest < TestCase
|
4
|
+
include ProviderTestHelper
|
5
|
+
|
6
|
+
def setup
|
7
|
+
super
|
8
|
+
@playlist = Model::Playlist.parse(xml("user_playlists"), :single => true)
|
9
|
+
end
|
10
|
+
|
11
|
+
test "has id" do
|
12
|
+
assert_equal 1011557, @playlist.id
|
13
|
+
end
|
14
|
+
|
15
|
+
test "has a title" do
|
16
|
+
assert_equal "knaveofdiamonds\342\200\231s playlist", @playlist.title
|
17
|
+
end
|
18
|
+
|
19
|
+
test "has a description" do
|
20
|
+
assert_equal "a description", @playlist.description
|
21
|
+
end
|
22
|
+
|
23
|
+
test "has a creation time" do
|
24
|
+
assert_equal Time.local(2007, 8, 23, 22, 4, 33), @playlist.created_at
|
25
|
+
end
|
26
|
+
|
27
|
+
test "has a size" do
|
28
|
+
assert_equal 27, @playlist.size
|
29
|
+
end
|
30
|
+
|
31
|
+
test "has a total duration" do
|
32
|
+
assert_equal 7487, @playlist.duration
|
33
|
+
end
|
34
|
+
|
35
|
+
test "can be streamable" do
|
36
|
+
assert ! @playlist.streamable?
|
37
|
+
end
|
38
|
+
|
39
|
+
test "has a url" do
|
40
|
+
assert_equal "http://www.last.fm/user/knaveofdiamonds/library/playlists/loit_knaveofdiamonds%25E2%2580%2599s_playlist", @playlist.url
|
41
|
+
end
|
42
|
+
|
43
|
+
test "can have tracks added to it" do
|
44
|
+
@facade.stubs(:session => stub(:playlist_facade => @facade))
|
45
|
+
@playlist.session = @facade.session
|
46
|
+
@facade.expects(:add_track).with(1011557, "Title", "Artist").returns(xml("ok"))
|
47
|
+
track = stub(:name => "Title", :artist_name => "Artist")
|
48
|
+
|
49
|
+
@playlist.add_track(track)
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class ShoutTest < TestCase
|
4
|
+
include ProviderTestHelper
|
5
|
+
|
6
|
+
def setup
|
7
|
+
super
|
8
|
+
@shout = Model::Shout.parse(xml("artist_shouts"), :single => true)
|
9
|
+
@shout.session = StubSession.new
|
10
|
+
end
|
11
|
+
|
12
|
+
test "has a message" do
|
13
|
+
assert @shout.message
|
14
|
+
end
|
15
|
+
|
16
|
+
test "has a time" do
|
17
|
+
assert_equal Time.local(2009, 5, 13, 3, 58, 30), @shout.time
|
18
|
+
end
|
19
|
+
|
20
|
+
test "has an author" do
|
21
|
+
assert_equal "distantfingers", @shout.user.name
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TagTest < TestCase
|
4
|
+
include ProviderTestHelper
|
5
|
+
|
6
|
+
def setup
|
7
|
+
super
|
8
|
+
@tag = Model::Tag.parse("<tag><name>disco</name></tag>")
|
9
|
+
@tag.session = StubSession.new
|
10
|
+
end
|
11
|
+
|
12
|
+
test "can be parsed from xml" do
|
13
|
+
parsed = Model::Tag.parse(xml("tag_search"))
|
14
|
+
assert_equal 20, parsed.size
|
15
|
+
assert_equal 75545, parsed.first.count
|
16
|
+
assert_equal "disco", parsed.first.name
|
17
|
+
assert_equal "www.last.fm/tag/disco", parsed.first.url
|
18
|
+
end
|
19
|
+
|
20
|
+
test "has similar tags" do
|
21
|
+
expect_get "method=tag.getSimilar&tag=disco", :tag_similar
|
22
|
+
assert @tag.similar.first.kind_of? Model::Tag
|
23
|
+
end
|
24
|
+
|
25
|
+
test "has artists" do
|
26
|
+
expect_get "method=tag.getTopArtists&tag=disco", :tag_top_artists
|
27
|
+
assert @tag.artists.first.kind_of? Model::Artist
|
28
|
+
end
|
29
|
+
|
30
|
+
test "has albums" do
|
31
|
+
expect_get "method=tag.getTopAlbums&tag=disco", :tag_top_albums
|
32
|
+
assert @tag.albums.first.kind_of? Model::Album
|
33
|
+
end
|
34
|
+
|
35
|
+
test "has tracks" do
|
36
|
+
expect_get "method=tag.getTopTracks&tag=disco", :tag_top_tracks
|
37
|
+
assert @tag.tracks.first.kind_of? Model::Track
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TrackTest < TestCase
|
4
|
+
include ProviderTestHelper
|
5
|
+
|
6
|
+
def setup
|
7
|
+
super
|
8
|
+
@track = Model::Track.parse(xml("track_info"), :single => true)
|
9
|
+
@track.session = StubSession.new
|
10
|
+
end
|
11
|
+
|
12
|
+
test "has a name" do
|
13
|
+
assert_equal "Stairway to Heaven", @track.name
|
14
|
+
end
|
15
|
+
|
16
|
+
test "has an id" do
|
17
|
+
assert_equal 12729, @track.id
|
18
|
+
end
|
19
|
+
|
20
|
+
test "has listeners" do
|
21
|
+
assert_equal 514346, @track.listeners
|
22
|
+
end
|
23
|
+
|
24
|
+
test "has a url" do
|
25
|
+
assert_equal "http://www.last.fm/music/Led+Zeppelin/_/Stairway+to+Heaven", @track.url
|
26
|
+
end
|
27
|
+
|
28
|
+
test "has a play count" do
|
29
|
+
assert_equal 3438976, @track.play_count
|
30
|
+
end
|
31
|
+
|
32
|
+
test "can be streamable" do
|
33
|
+
assert @track.streamable?
|
34
|
+
end
|
35
|
+
|
36
|
+
test "has a duration in milliseconds" do
|
37
|
+
assert_equal 478000, @track.duration
|
38
|
+
end
|
39
|
+
|
40
|
+
test "has an artist" do
|
41
|
+
assert_equal "Led Zeppelin", @track.artist.name
|
42
|
+
end
|
43
|
+
|
44
|
+
test "has an album" do
|
45
|
+
assert_equal "Led Zeppelin IV", @track.album.name
|
46
|
+
end
|
47
|
+
|
48
|
+
test "has user tags" do
|
49
|
+
expect_get "method=track.getTags&artist=Led%20Zeppelin&track=Stairway%20to%20Heaven", :tag_search
|
50
|
+
assert @track.my_tags.first.kind_of? Model::Tag
|
51
|
+
end
|
52
|
+
|
53
|
+
test "has similar tracks" do
|
54
|
+
expect_get "method=track.getSimilar&track=Stairway%20to%20Heaven&artist=Led%20Zeppelin", :track_search
|
55
|
+
assert @track.similar.first.kind_of? Model::Track
|
56
|
+
end
|
57
|
+
|
58
|
+
test "has fans" do
|
59
|
+
expect_get "method=track.getTopFans&track=Stairway%20to%20Heaven&artist=Led%20Zeppelin", :artist_top_fans
|
60
|
+
assert @track.fans.first.kind_of? Model::User
|
61
|
+
end
|
62
|
+
|
63
|
+
test "has tags" do
|
64
|
+
expect_get "method=track.getTopTags&track=Stairway%20to%20Heaven&artist=Led%20Zeppelin", :tag_similar
|
65
|
+
assert @track.tags.first.kind_of? Model::Tag
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,125 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class UserTest < TestCase
|
4
|
+
include ProviderTestHelper
|
5
|
+
|
6
|
+
def setup
|
7
|
+
super
|
8
|
+
@user = Model::User.parse(xml("user_info"), :single => true)
|
9
|
+
@user.session = StubSession.new
|
10
|
+
end
|
11
|
+
|
12
|
+
test "has a name" do
|
13
|
+
assert_equal "knaveofdiamonds", @user.name
|
14
|
+
end
|
15
|
+
|
16
|
+
test "has an id" do
|
17
|
+
assert_equal 7532711, @user.id
|
18
|
+
end
|
19
|
+
|
20
|
+
test "has a real name" do
|
21
|
+
assert_equal "Roland Swingler", @user.real_name
|
22
|
+
end
|
23
|
+
|
24
|
+
test "has a url" do
|
25
|
+
assert_equal "http://www.last.fm/user/knaveofdiamonds", @user.url
|
26
|
+
end
|
27
|
+
|
28
|
+
test "has an image" do
|
29
|
+
assert_equal "http://userserve-ak.last.fm/serve/126/10636291.jpg", @user.image
|
30
|
+
end
|
31
|
+
|
32
|
+
test "has a language" do
|
33
|
+
assert_equal "en", @user.language
|
34
|
+
end
|
35
|
+
|
36
|
+
test "has a country" do
|
37
|
+
assert_equal "UK", @user.country
|
38
|
+
end
|
39
|
+
|
40
|
+
test "can be a subscriber" do
|
41
|
+
assert_equal false, @user.subscriber
|
42
|
+
end
|
43
|
+
|
44
|
+
test "has a play count" do
|
45
|
+
assert_equal 8251, @user.play_count
|
46
|
+
end
|
47
|
+
|
48
|
+
test "has album chart" do
|
49
|
+
expect_get "method=user.getWeeklyAlbumChart&user=knaveofdiamonds", :group_weekly_album_chart
|
50
|
+
assert_equal 250, @user.album_chart.size
|
51
|
+
end
|
52
|
+
|
53
|
+
test "has artist chart" do
|
54
|
+
expect_get "method=user.getWeeklyArtistChart&user=knaveofdiamonds", :group_weekly_artist_chart
|
55
|
+
assert_equal 100, @user.artist_chart.size
|
56
|
+
end
|
57
|
+
|
58
|
+
test "has track chart" do
|
59
|
+
expect_get "method=user.getWeeklyTrackChart&user=knaveofdiamonds", :group_weekly_track_chart
|
60
|
+
assert_equal 100, @user.track_chart.size
|
61
|
+
end
|
62
|
+
|
63
|
+
test "has chart dates" do
|
64
|
+
expect_get "method=user.getWeeklyChartList&user=knaveofdiamonds", :tag_weekly_chart_list
|
65
|
+
assert_equal 53, @user.chart_dates.size
|
66
|
+
end
|
67
|
+
|
68
|
+
test "has events" do
|
69
|
+
expect_get "method=user.getEvents&user=knaveofdiamonds", :venue_events
|
70
|
+
assert @user.events.first.kind_of? Model::Event
|
71
|
+
end
|
72
|
+
|
73
|
+
test "has past events" do
|
74
|
+
expect_get "method=user.getPastEvents&user=knaveofdiamonds", :venue_events
|
75
|
+
assert @user.past_events.first.kind_of? Model::Event
|
76
|
+
end
|
77
|
+
|
78
|
+
test "has recent tracks" do
|
79
|
+
expect_get "method=user.getRecentTracks&user=knaveofdiamonds", :user_recent_tracks
|
80
|
+
assert @user.recent_tracks.first.kind_of? Model::Track
|
81
|
+
end
|
82
|
+
|
83
|
+
test "has neighbours" do
|
84
|
+
expect_get "method=user.getNeighbours&user=knaveofdiamonds", :user_neighbours
|
85
|
+
assert @user.neighbours.first.kind_of? Model::User
|
86
|
+
end
|
87
|
+
|
88
|
+
test "has friends" do
|
89
|
+
expect_get "method=user.getFriends&user=knaveofdiamonds", :user_neighbours
|
90
|
+
assert @user.friends.first.kind_of? Model::User
|
91
|
+
end
|
92
|
+
|
93
|
+
test "has loved tracks" do
|
94
|
+
expect_get "method=user.getLovedTracks&user=knaveofdiamonds", :track_search
|
95
|
+
assert @user.loved_tracks.first.kind_of? Model::Track
|
96
|
+
end
|
97
|
+
|
98
|
+
test "has playlists" do
|
99
|
+
expect_get "method=user.getPlaylists&user=knaveofdiamonds", :user_playlists
|
100
|
+
assert @user.playlists.first.kind_of? Model::Playlist
|
101
|
+
end
|
102
|
+
|
103
|
+
test "has shouts" do
|
104
|
+
expect_get "method=user.getShouts&user=knaveofdiamonds", :user_shouts
|
105
|
+
assert @user.shouts.first.kind_of? Model::Shout
|
106
|
+
end
|
107
|
+
|
108
|
+
# Logged in user only
|
109
|
+
|
110
|
+
test "has recommended events" do
|
111
|
+
expect_get "method=user.getRecommendedEvents", :venue_events
|
112
|
+
assert @user.recommended_events.first.kind_of? Model::Event
|
113
|
+
end
|
114
|
+
|
115
|
+
test "has recommended artists" do
|
116
|
+
expect_get "method=user.getRecommendedArtists", :user_recommended_artists
|
117
|
+
assert @user.recommended_artists.first.kind_of? Model::Artist
|
118
|
+
end
|
119
|
+
|
120
|
+
test "can be compared with other users" do
|
121
|
+
other = Model::User.parse("<user><name>other</name></user>")
|
122
|
+
expect_get "method=tasteometer.compare&type1=user&type2=user&value1=knaveofdiamonds&value2=other", :tasteometer_compare
|
123
|
+
assert @user.compare_with(other).kind_of? Model::Comparison
|
124
|
+
end
|
125
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class VenueTest < TestCase
|
4
|
+
include ProviderTestHelper
|
5
|
+
|
6
|
+
def setup
|
7
|
+
super
|
8
|
+
@venue = Model::Venue.parse(xml("venue_search"), :single => true)
|
9
|
+
@venue.session = StubSession.new
|
10
|
+
end
|
11
|
+
|
12
|
+
test "venue has a name" do
|
13
|
+
assert_equal "Koko", @venue.name
|
14
|
+
end
|
15
|
+
|
16
|
+
test "venue has a city" do
|
17
|
+
assert_equal "London", @venue.city
|
18
|
+
end
|
19
|
+
|
20
|
+
test "venue has a country" do
|
21
|
+
assert_equal "United Kingdom", @venue.country
|
22
|
+
end
|
23
|
+
|
24
|
+
test "venue has a street address" do
|
25
|
+
assert_equal "1a Camden High Street, Camden", @venue.street_address
|
26
|
+
end
|
27
|
+
|
28
|
+
test "venue has a post code" do
|
29
|
+
assert_equal "NW1 7JE", @venue.postcode
|
30
|
+
end
|
31
|
+
|
32
|
+
test "venue has a url" do
|
33
|
+
assert_equal "http://www.last.fm/venue/8777134", @venue.url
|
34
|
+
end
|
35
|
+
|
36
|
+
test "venue has a location" do
|
37
|
+
assert_in_delta 51.53469, @venue.location.latitude, 0.000001
|
38
|
+
assert_in_delta -0.138434, @venue.location.longitude, 0.000001
|
39
|
+
end
|
40
|
+
|
41
|
+
test "venue's location has session set" do
|
42
|
+
@venue.session = stub()
|
43
|
+
assert @venue.instance_variable_get("@session".to_sym)
|
44
|
+
assert @venue.location.instance_variable_get("@session".to_sym)
|
45
|
+
end
|
46
|
+
|
47
|
+
test "venue has an id" do
|
48
|
+
assert_equal 8777134, @venue.id
|
49
|
+
end
|
50
|
+
|
51
|
+
test "has events" do
|
52
|
+
expect_get "method=venue.getEvents&venue=8777134", :venue_events
|
53
|
+
assert @venue.events.first.kind_of? Model::Event
|
54
|
+
end
|
55
|
+
|
56
|
+
test "has past events" do
|
57
|
+
expect_get "method=venue.getPastEvents&venue=8777134", :venue_events
|
58
|
+
assert @venue.past_events.first.kind_of? Model::Event
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class AlbumProviderTest < TestCase
|
4
|
+
include ProviderTestHelper
|
5
|
+
|
6
|
+
test "can get an album by artist and name" do
|
7
|
+
expect_get "method=album.getInfo&artist=The%20Feelies&album=Only%20Life", :album_info
|
8
|
+
assert_equal "Only Life", StubSession.new.album.get("The Feelies", "Only Life").name
|
9
|
+
end
|
10
|
+
|
11
|
+
test "can get an album by musicbrainz id" do
|
12
|
+
expect_get "method=album.getInfo&mbid=464efacc-a133-4ae6-a9ff-7573c448eb32", :album_info
|
13
|
+
assert_equal "Only Life", StubSession.new.album.get_by_id("464efacc-a133-4ae6-a9ff-7573c448eb32").name
|
14
|
+
end
|
15
|
+
|
16
|
+
test "can get an album by RBrainz mbid model" do
|
17
|
+
expect_get "method=album.getInfo&mbid=464efacc-a133-4ae6-a9ff-7573c448eb32", :album_info
|
18
|
+
assert_equal "Only Life", StubSession.new.album.get_by_id(stub(:uuid => "464efacc-a133-4ae6-a9ff-7573c448eb32")).name
|
19
|
+
end
|
20
|
+
|
21
|
+
test "can search for albums by name" do
|
22
|
+
expect_get "method=album.search&album=Only%20Life", :album_search
|
23
|
+
assert_equal 20, StubSession.new.album.search("Only Life").size
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class ArtistProviderTest < TestCase
|
4
|
+
include ProviderTestHelper
|
5
|
+
|
6
|
+
test "can get an artist by name" do
|
7
|
+
expect_get "method=artist.getInfo&artist=The%20Feelies", :artist_info
|
8
|
+
assert_equal "The Feelies", StubSession.new.artist.get("The Feelies").name
|
9
|
+
end
|
10
|
+
|
11
|
+
test "can get an artist by mbid" do
|
12
|
+
expect_get "method=artist.getInfo&mbid=28c07254-aeae-42ad-beea-67f59c3c8baf", :artist_info
|
13
|
+
assert_equal "The Feelies", StubSession.new.artist.get_by_id("28c07254-aeae-42ad-beea-67f59c3c8baf").name
|
14
|
+
end
|
15
|
+
|
16
|
+
test "can get an artist by an Rbrainz MBID model via uuid attribute" do
|
17
|
+
expect_get "method=artist.getInfo&mbid=28c07254-aeae-42ad-beea-67f59c3c8baf", :artist_info
|
18
|
+
assert_equal "The Feelies", StubSession.new.artist.get_by_id(stub(:uuid => "28c07254-aeae-42ad-beea-67f59c3c8baf")).name
|
19
|
+
end
|
20
|
+
|
21
|
+
test "can search for artists by name" do
|
22
|
+
expect_get "method=artist.search&artist=The%20Feelies", :artist_search
|
23
|
+
assert_equal 11, StubSession.new.artist.search("The Feelies").size
|
24
|
+
end
|
25
|
+
end
|