[project @ 7050]
[audio-mpd-common.git] / t / 10-item.t
blobe2537c83a7e757b0217c414d44670e64a98da205
1 #!perl
3 # This file is part of Audio::MPD::Common
4 # Copyright (c) 2007 Jerome Quelin, all rights reserved.
6 # This program is free software; you can redistribute it and/or modify
7 # it under the same terms as Perl itself.
11 use strict;
12 use warnings;
14 use Audio::MPD::Common::Item;
15 use Test::More tests => 21;
17 my ($i, $output, @output, %params);
20 # testing amc::item::song
21 $output = 'file: some/random/path/to/a/song.ogg
22 Time: 234
23 Artist: Foo Bar
24 Album: Frobnizer
25 Track: 26
26 Title: Blah!
27 Pos: 10
28 Id: 14
30 @output = split /\n/, $output;
31 %params = map { /^([^:]+):\s+(.*)$/ ? ($1=>$2) : () } @output;
32 $i = Audio::MPD::Common::Item->new( %params );
33 isa_ok( $i, 'Audio::MPD::Common::Item::Song', 'song creation' );
34 is( $i->file,   'some/random/path/to/a/song.ogg',  'accessor: file' );
35 is( $i->time,   234,                               'accessor: time' );
36 is( $i->artist, 'Foo Bar',                         'accessor: artist' );
37 is( $i->album,  'Frobnizer',                       'accessor: album' );
38 is( $i->track,  26,                                'accessor: track' );
39 is( $i->title,  'Blah!',                           'accessor: title' );
40 is( $i->pos,    10,                                'accessor: pos' );
41 is( $i->id,     14,                                'accessor: id' );
42 isa_ok( $i, 'Audio::MPD::Common::Item', 'song inherits from item' );
46 # testing as_string from amc::item::song.
47 is( $i->as_string, 'Frobnizer = 26 = Foo Bar = Blah!', 'as_string() with all tags' );
48 $i->track(undef);
49 is( $i->as_string, 'Foo Bar = Blah!', 'as_string() without track' );
50 $i->track(26); $i->album(undef);
51 is( $i->as_string, 'Foo Bar = Blah!', 'as_string() without album' );
52 $i->artist(undef);
53 is( $i->as_string, 'Blah!',           'as_string() without artist' );
54 $i->title(undef);
55 is( $i->as_string, 'some/random/path/to/a/song.ogg', 'as_string() without title' );
59 # testing amc::item::directory
60 $output = "directory: some/random/path\n";
61 @output = split /\n/, $output;
62 %params = map { /^([^:]+):\s+(.*)$/ ? ($1=>$2) : () } @output;
63 $i = Audio::MPD::Common::Item->new( %params );
64 isa_ok( $i, 'Audio::MPD::Common::Item::Directory', 'directory creation' );
65 is( $i->directory, 'some/random/path',  'accessor: directory' );
66 isa_ok( $i, 'Audio::MPD::Common::Item', 'directory inherits from item' );
70 # testing amc::item::playlist
71 $output = "playlist: some_name\n";
72 @output = split /\n/, $output;
73 %params = map { /^([^:]+):\s+(.*)$/ ? ($1=>$2) : () } @output;
74 $i = Audio::MPD::Common::Item->new( %params );
75 isa_ok( $i, 'Audio::MPD::Common::Item::Playlist', 'playlist creation' );
76 is( $i->playlist, 'some_name',  'accessor: playlist' );
77 isa_ok( $i, 'Audio::MPD::Common::Item', 'playlistinherits from item' );
79 exit;