forked from movabletype/movabletype
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path08-util-db.t
71 lines (61 loc) · 2.1 KB
/
08-util-db.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use lib 't/lib', 'extlib', 'lib', '../lib', '../extlib';
use Test::More tests => 7;
use MT::Test qw(:db :data);
use MT;
use MT::Util qw(archive_file_for get_entry multi_iter);
my $mt = MT->new;
my $timestamp = '19770908153005';
{
my $entry = $mt->model('entry')->load(1);
is( archive_file_for( $entry, $entry->blog, 'Individual' ),
'1978/01/a-rainy-day.html', 'archive_file_for()' );
}
{
my $entry;
ok( $entry = get_entry( $timestamp, 1, 'Daily' ), 'get_entry()' );
is( $entry ? $entry->title : '', 'A Rainy Day', 'result of get_entry()' );
ok( $entry = get_entry( $timestamp, 1, 'Daily', 'previous' ), 'get_entry() with "previous"' );
is( $entry ? $entry->title : '', 'Verse 5', 'result of get_entry() with "previous"' );
ok( !get_entry( $timestamp, 1, 'Category' ), 'get_entry() with invalid archive_type' );
}
{
my $iter1 =
$mt->model('blog')->load_iter( undef, { sort => 'id', limit => 1 } );
my $iter2 =
$mt->model('entry')->load_iter( undef, { sort => 'id', limit => 1 } );
my $iter3 =
$mt->model('comment')->load_iter( undef, { sort => 'id', limit => 1 } );
my $multi = multi_iter( [ $iter1, $iter2, $iter3 ] );
my @objs = ();
while ( my $obj = $multi->() ) {
push( @objs, ref($obj) . '#' . $obj->id );
}
is(
join( ',', @objs ),
'MT::Blog#1,MT::Entry#1,MT::Comment#1',
"multi_iter() without picker"
);
}
{
my $iter1 =
$mt->model('blog')->load_iter( undef, { sort => 'id', limit => 1 } );
my $iter2 =
$mt->model('entry')->load_iter( undef, { sort => 'id', limit => 1 } );
my $iter3 =
$mt->model('comment')->load_iter( undef, { sort => 'id', limit => 1 } );
my $picker = sub { ref $_[0] eq 'MT::Comment' };
my $multi = multi_iter( [ $iter1, $iter2, $iter3 ], $picker );
my @objs = ();
while ( my $obj = $multi->() ) {
push( @objs, ref($obj) . '#' . $obj->id );
}
is(
join( ',', @objs ),
'MT::Comment#1,MT::Blog#1,MT::Entry#1',
"multi_iter() with picker"
);
}