shortwave 0.0.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.
- 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
|