Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
/*
4
 * This file is part of the symfony package.
5
 * (c) 2004-2006 Fabien Potencier <fabien.potencier@symfony-project.com>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
 
11
$app = 'frontend';
12
require_once(dirname(__FILE__).'/../bootstrap/functional.php');
13
 
14
$t = new lime_test(23);
15
 
16
$total = 50;
17
for ($i = 0; $i < $total; $i++)
18
{
19
  $author = new Author();
20
  $author->name = 'Author #' . $i;
21
  $author->save();
22
}
23
 
24
$numPerPage = 25;
25
$pager = new sfDoctrinePager('Author', $numPerPage);
26
$pager->setTableMethod('testTableMethod');
27
$pager->setPage(1);
28
$pager->init();
29
 
30
$t->is($pager->getQuery()->getSqlQuery(), 'SELECT a.id AS a__id, a.name AS a__name, a.type AS a__type FROM author a WHERE (a.id > 0) LIMIT 25');
31
$t->ok($pager->isFirstPage());
32
 
33
$pager->setPage(2);
34
$pager->init();
35
 
36
$t->is($pager->getQuery()->getSqlQuery(), 'SELECT a.id AS a__id, a.name AS a__name, a.type AS a__type FROM author a WHERE (a.id > 0) LIMIT 25 OFFSET 25');
37
$t->is($pager->getQuery()->count(), $total);
38
$t->ok($pager->isLastPage());
39
 
40
$results = $pager->getResults();
41
 
42
$t->is(gettype($results), 'object');
43
$t->is(get_class($results), 'Doctrine_Collection');
44
$t->is(count($results), $numPerPage);
45
$t->is($pager->getCountQuery()->count(), $total);
46
 
47
$pager = new sfDoctrinePager('Author', $numPerPage);
48
$pager->setTableMethod('testTableMethod');
49
$pager->setPage(1);
50
$pager->init();
51
 
52
$results = $pager->getResults(Doctrine_Core::HYDRATE_ARRAY);
53
 
54
$t->is(gettype($results), 'array');
55
$t->is(count($results), $numPerPage);
56
 
57
$pager = new sfDoctrinePager('Author', $numPerPage);
58
$pager->setTableMethod('testTableMethod2');
59
$pager->setQuery(Doctrine_Query::create()->from('Author a')->where('a.id < 9999999'));
60
$pager->setPage(1);
61
$pager->init();
62
 
63
$t->is($pager->getQuery()->getSqlQuery(), 'SELECT a.id AS a__id, a.name AS a__name, a.type AS a__type FROM author a WHERE (a.id < 9999999 AND a.id > 0) LIMIT 25');
64
 
65
$pager = new sfDoctrinePager('Author', $numPerPage);
66
$pager->setQuery(Doctrine_Query::create()->from('Author a')->where('a.id < 9999999'));
67
$pager->setPage(1);
68
$pager->init();
69
 
70
$t->is($pager->getQuery()->getSqlQuery(), 'SELECT a.id AS a__id, a.name AS a__name, a.type AS a__type FROM author a WHERE (a.id < 9999999) LIMIT 25');
71
 
72
// pager interface
73
$t->diag('iterator interface');
74
 
75
$pager = new sfDoctrinePager('Author', 10);
76
$pager->init();
77
foreach ($pager as $author)
78
{
79
  $t->isa_ok($author, 'Author');
80
}