mirror of
https://github.com/danbee/mpd-client
synced 2025-03-04 08:39:09 +00:00
36 lines
1.0 KiB
Ruby
36 lines
1.0 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe MPDClient::Album do
|
|
|
|
subject { MPDClient::Album }
|
|
|
|
let(:song1) { MPD::Song.new({ album: 'Back in Black', genre: 'Rock', date: '1980' }) }
|
|
let(:song2) { MPD::Song.new({ album: 'Highway to Hell', genre: 'Rock', date: '1979' }) }
|
|
|
|
before do
|
|
MPDClient.conn.tap do |mpd|
|
|
mpd.stub(:albums).and_return([song1.album, song2.album])
|
|
mpd.stub(:where).and_return([song1, song2])
|
|
mpd.stub(:where).with(album: song1.album).and_return([song1])
|
|
mpd.stub(:where).with(album: song2.album).and_return([song2])
|
|
end
|
|
end
|
|
|
|
it 'has attributes based on first song' do
|
|
album = subject.new(song1.album)
|
|
expect(album.title).to eq(song1.album)
|
|
expect(album.genre).to eq(song1.genre)
|
|
expect(album.year).to eq(song1.date)
|
|
end
|
|
|
|
it 'should return a list of albums' do
|
|
expect(subject.by_artist('AC/DC')).to have(2).items
|
|
end
|
|
|
|
it 'should sort the albums by year' do
|
|
albums = subject.by_artist('AC/DC')
|
|
expect(albums.sort.map(&:year)).to eq(['1979', '1980'])
|
|
end
|
|
|
|
end
|