25d130d3009665e33463f7406473ad21aebd0c3c
[cascardo/www-eztv.git] / t / 01-series.t
1 #!/usr/bin/env perl
2
3 use strict;
4 use Test::More;
5
6 BEGIN { use_ok( 'WWW::EZTV' ); }
7
8 ok( my $eztv = WWW::EZTV->new, 'Build eztv crawler' );
9 isa_ok( $eztv->shows, 'Mojo::Collection' );
10 isa_ok( $eztv->shows->[0], 'WWW::EZTV::Show' );
11
12 subtest 'All shows has name and URL' => sub {
13     my $has_year = 0;
14     $eztv->shows->each(sub {
15         my $show = shift;
16         ok( $show->name, 'Found show ' . $show->name );
17         ok( $show->url, 'Has url ' . $show->url );
18         ok( $show->status, 'Has status ' . $show->status );
19         $has_year++ if $show->year;
20     });
21     ok( $has_year, "Some shows has year info" );
22 };
23
24 subtest 'Show object' => sub {
25     ok( my $show = $eztv->shows->[0], 'Pick first show' );
26     diag( $show->name . ' was choosen!' );
27     ok( $show->has_episodes, 'Has episodes' );
28     ok( $show->episodes, 'Retrieve episodes' );
29     $show->episodes->each(sub{
30         my $ep = shift;
31         diag( 'Title:   '. $ep->title );
32         diag( 'Name:    '. $ep->name );
33         diag( 'Season:  '. $ep->season );
34         diag( 'Number:  '. $ep->number );
35         diag( 'Version: '. $ep->version );
36         diag( 'Size:    '. $ep->size );
37         ok( $ep->season >= 1, 'Has season' );
38         ok( $ep->number >= 1, 'Has number' );
39
40         ok( my $link = $ep->links->[0], 'Get first link' );
41         ok( $link->url, 'Link has url' );
42     });
43 };
44
45 done_testing();