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
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};
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' );