Rename
[blog.pm-common-perl-mods.git] / Common-RDBO-Helpers / t / get_objects_archive.t
blob8b5e103ae2db871bbeabc727bc15b1cc350e8cdc
1 #! /usr/bin/perl
3 use lib 't/lib';
5 use Test::More 'tests' => 8;
7 use NewDB;
8 use Post;
9 use Post::Manager;
10 use DateTime;
12 my $db = NewDB->new();
14 $db->init();
16 my @data = (
18 addtime => DateTime->new( year => 2008, month => 8, day => 31 )->epoch,
19 title => 'Linux',
20 content => 'blah-blah'
23 addtime => DateTime->new( year => 2008, month => 8, day => 31 )->epoch,
24 title => 'Unix',
25 content => 'blah-blah'
28 addtime => DateTime->new( year => 2008, month => 7, day => 21 )->epoch,
29 title => 'Unix',
30 content => 'blah-blah'
33 addtime => DateTime->new( year => 2008, month => 7, day => 31 )->epoch,
34 title => 'BSD',
35 content => 'blah-blah'
38 addtime => DateTime->new( year => 2008, month => 5, day => 1 )->epoch,
39 title => 'BSD',
40 content => 'blah-blah'
43 addtime => DateTime->new( year => 2007, month => 2, day => 3 )->epoch,
44 title => 'BSD',
45 content => 'blah-blah'
50 foreach my $data ( @data ) {
51 my $post = Post->new( %$data );
53 $post->save( cascade => 1 );
56 my $archive;
58 $archive = Post::Manager->get_objects_archive( column => 'addtime', year => 2006 );
59 is( @$archive, 0 );
61 $archive = Post::Manager->get_objects_archive( column => 'addtime', year => 2007 );
62 is( @$archive, 1 );
64 $archive = Post::Manager->get_objects_archive( column => 'addtime', year => 2008 );
65 is( @$archive, 5 );
67 $archive = Post::Manager->get_objects_archive( column => 'addtime', year => 2008, month => 8 );
68 is( @$archive, 2 );
70 $archive = Post::Manager->get_objects_archive( column => 'addtime', year => 2008, month => 8, day => 31 );
71 is( @$archive, 2 );
73 $archive = Post::Manager->get_objects_archive( column => 'addtime', year => 2008, month => 7, day => 21 );
74 is( @$archive, 1 );
75 $archive = Post::Manager->get_objects_archive( column => 'addtime', year => 2008, month => 8, day => 31 );
76 is( @$archive, 2 );
78 my $month_list =
79 Post::Manager->get_objects_archive_month_list( column => 'addtime' );
81 is_deeply(
82 $month_list,
85 count => 2,
86 year => 2008,
87 month => 8,
88 month_name => 'August'
91 count => 2,
92 year => 2008,
93 month => 7,
94 month_name => 'July'
97 count => 1,
98 year => 2008,
99 month => 5,
100 month_name => 'May'
103 count => 1,
104 year => 2007,
105 month => 2,
106 month_name => 'February'
111 my $posts = Post::Manager->get_objects();
112 $_->delete( cascade => 1 ) foreach @$posts;