pod update
[audio-mpd-common.git] / t / 10-item.t
blob994bd3c43285e10015f8d46f5e1130b3db1901b8
1 use strict;
2 use warnings;
4 use Audio::MPD::Common::Item;
5 use Test::More tests => 22;
7 my ($i, $output, @output, %params);
10 # testing amc::item::song
11 $output = 'file: some/random/path/to/a/song.ogg
12 Time: 234
13 Artist: Foo Bar
14 Album: Frobnizer
15 Track: 26
16 Title: Blah!
17 Pos: 10
18 Id: 14
20 @output = split /\n/, $output;
21 %params = map { /^([^:]+):\s+(.*)$/ ? ($1=>$2) : () } @output;
22 $i = Audio::MPD::Common::Item->new( %params );
23 isa_ok( $i, 'Audio::MPD::Common::Item::Song', 'song creation' );
24 is( $i->file,   'some/random/path/to/a/song.ogg',  'accessor: file' );
25 is( $i->time,   234,                               'accessor: time' );
26 is( $i->artist, 'Foo Bar',                         'accessor: artist' );
27 is( $i->album,  'Frobnizer',                       'accessor: album' );
28 is( $i->track,  26,                                'accessor: track' );
29 is( $i->title,  'Blah!',                           'accessor: title' );
30 is( $i->pos,    10,                                'accessor: pos' );
31 is( $i->id,     14,                                'accessor: id' );
32 isa_ok( $i, 'Audio::MPD::Common::Item', 'song inherits from item' );
36 # testing as_string from amc::item::song.
37 is( $i->as_string, 'Frobnizer = 26 = Foo Bar = Blah!', 'as_string() with all tags' );
38 delete $params{Track};
39 $i = Audio::MPD::Common::Item->new( %params );
40 is( $i->as_string, 'Foo Bar = Blah!', 'as_string() without track' );
41 delete $params{Album};
42 $params{Track} = 26;
43 $i = Audio::MPD::Common::Item->new( %params );
44 is( $i->as_string, 'Foo Bar = Blah!', 'as_string() without album' );
45 delete $params{Artist};
46 $i = Audio::MPD::Common::Item->new( %params );
47 is( $i->as_string, 'Blah!',           'as_string() without artist' );
48 delete $params{Title};
49 $i = Audio::MPD::Common::Item->new( %params );
50 is( $i->as_string, 'some/random/path/to/a/song.ogg', 'as_string() without title' );
54 # testing amc::item::directory
55 $output = "directory: some/random/path\n";
56 @output = split /\n/, $output;
57 %params = map { /^([^:]+):\s+(.*)$/ ? ($1=>$2) : () } @output;
58 $i = Audio::MPD::Common::Item->new( %params );
59 isa_ok( $i, 'Audio::MPD::Common::Item::Directory', 'directory creation' );
60 is( $i->directory, 'some/random/path',  'accessor: directory' );
61 isa_ok( $i, 'Audio::MPD::Common::Item', 'directory inherits from item' );
65 # testing amc::item::playlist
66 $output = 'playlist: some_name
67 Last-Modified: 2006-12-13T19:53:50Z
69 @output = split /\n/, $output;
70 %params = map { /^([^:]+):\s+(.*)$/ ? ($1=>$2) : () } @output;
71 $i = Audio::MPD::Common::Item->new( %params );
72 isa_ok( $i, 'Audio::MPD::Common::Item::Playlist', 'playlist creation' );
73 is( $i->playlist, 'some_name',  'accessor: playlist' );
74 is( $i->last_modified, '2006-12-13T19:53:50Z',  'accessor: last_modified' );
75 isa_ok( $i, 'Audio::MPD::Common::Item', 'playlistinherits from item' );