From b7d5fc392611f0cb7f1ff6d87b758cb9572c7806 Mon Sep 17 00:00:00 2001 From: knut <> Date: Mon, 4 Jun 2007 21:35:25 +0000 Subject: implemented unit tests for TPagedList --- tests/unit/Collections/TPagedListTest.php | 173 ++++++++++++++++++++++++++---- 1 file changed, 151 insertions(+), 22 deletions(-) diff --git a/tests/unit/Collections/TPagedListTest.php b/tests/unit/Collections/TPagedListTest.php index f7c3bb63..e5f2036e 100644 --- a/tests/unit/Collections/TPagedListTest.php +++ b/tests/unit/Collections/TPagedListTest.php @@ -3,6 +3,29 @@ require_once dirname(__FILE__).'/../phpunit.php'; Prado::using('System.Collections.TPagedList'); +class MyPagedList extends TPagedList { + + private $_isPageIndexChanged = false; + private $_hasFetchedData = false; + + public function pageIndexChanged($sender, $param) { + $this->_isPageIndexChanged = true; + } + + public function fetchData($sender, $param) { + $this->_hasFetchedData = true; + } + + public function isPageIndexChanged() { + return $this->_isPageIndexChanged; + } + + public function hasFetchedData() { + return $this->_hasFetchedData; + } + +} + /** * @package System.Collections */ @@ -16,83 +39,189 @@ class TPagedListTest extends PHPUnit_Framework_TestCase { public function testConstruct() { $list = new TPagedList(); - self::assertEquals(true, $list->getReadOnly()); - self::assertEquals(-1, $list->getVirtualCount()); + self::assertEquals(true, $list->ReadOnly); + self::assertEquals(-1, $list->VirtualCount); $list = new TPagedList(array(1, 2, 3)); - $list->setPageSize(3); - self::assertEquals(3, $list->getCount()); + $list->PageSize = 3; + self::assertEquals(3, $list->Count); } public function testCustomPaging() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(); + $list->CustomPaging = true; + self::assertEquals(true, $list->CustomPaging); + $list->CustomPaging = false; + self::assertEquals(false, $list->CustomPaging); } public function testPageSize() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(); + $list->PageSize = 5; + self::assertEquals(5, $list->PageSize); + } + + public function testCanNotSetInvalidPageSize() { + $list = new TPagedList(); + try { + $list->PageSize = 0; + } catch(TInvalidDataValueException $e) { + return; + } + self::fail('An expected TInvalidDataValueException was not raised'); } public function testCurrentPageIndex() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2, 3)); + $list->PageSize = 1; + $list->CurrentPageIndex = 2; + self::assertEquals(2, $list->CurrentPageIndex); } public function testOnPageIndexChanged() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2, 3, 4, 5)); + $list->PageSize = 1; + $list->CurrentPageIndex = 1; + $oldPage = $list->CurrentPageIndex; + $myList = new MyPagedList(); + $list->attachEventHandler('OnPageIndexChanged', array($myList, 'pageIndexChanged')); + self::assertEquals(false, $myList->isPageIndexChanged()); + $list->onPageIndexChanged(new TPagedListPageChangedEventParameter($oldPage)); + self::assertEquals(true, $myList->isPageIndexChanged()); } public function testOnFetchData() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2, 3, 4)); + $list->CustomPaging = true; + $list->PageSize = 2; + $list->gotoPage(0); + $myList = new MyPagedList(); + $list->attachEventHandler('OnFetchData', array($myList, 'fetchData')); + self::assertEquals(false, $myList->hasFetchedData()); + $list->onFetchData(new TPagedListFetchDataEventParameter($list->CurrentPageIndex, $this->PageSize*$this->CurrentPageIndex, $list->PageSize)); + self::assertEquals(true, $myList->hasFetchedData()); } public function testGotoPage() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2, 3)); + $list->PageSize = 1; + self::assertEquals(2, $list->gotoPage(2)); + self::assertEquals(false, $list->gotoPage(4)); } public function testNextPage() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2)); + $list->PageSize = 1; + $list->gotoPage(0); + self::assertEquals(1, $list->nextPage()); + self::assertEquals(false, $list->nextPage()); } public function testPreviousPage() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2)); + $list->PageSize = 1; + $list->gotoPage(1); + self::assertEquals(0, $list->previousPage()); + self::assertEquals(false, $list->previousPage()); } public function testVirtualCount() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2)); + $list->VirtualCount = -10; + self::assertEquals(-1, $list->VirtualCount); + $list->VirtualCount = 5; + self::assertEquals(5, $list->VirtualCount); + } + + public function testPageCount() { + $list = new TPagedList(array(1, 2, 3)); + $list->PageSize = 1; + $list->CustomPaging = true; + self::assertEquals(-1, $list->PageCount); + $list->VirtualCount = 3; + self::assertEquals(3, $list->PageCount); + $list->CustomPaging = false; + self::assertEquals(3, $list->PageCount); } public function testIsFirstPage() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2, 3)); + $list->PageSize = 1; + $list->gotoPage(0); + self::assertEquals(true, $list->IsFirstPage); + $list->gotoPage(1); + self::assertEquals(false, $list->IsFirstPage); } public function testIsLastPage() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2, 3)); + $list->PageSize = 1; + $list->gotoPage(0); + self::assertEquals(false, $list->IsLastPage); + $list->gotoPage(2); + self::assertEquals(true, $list->IsLastPage); } public function testGetCount() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2, 3)); + $list->PageSize = 1; + self::assertEquals(1, $list->Count); + $list->CustomPaging = true; + self::assertEquals(3, $list->Count); } public function testGetIterator() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2)); + $list->CustomPaging = true; + self::assertType('TListIterator', $list->getIterator()); + $n = 0; + $found = 0; + foreach($list as $index => $item) { + foreach($list as $a => $b); // test of iterator + $n++; + if($index === 0 && $item === 1) { + $found++; + } + if($index === 1 && $item === 2) { + $found++; + } + } + self::assertTrue($n == 2 && $found == 2); } public function testItemAt() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2, 3)); + $list->CustomPaging = true; + self::assertEquals(1, $list[0]); + $list->CustomPaging = false; + $list->PageSize = 1; + $list->CurrentPageIndex = 0; + self::assertEquals(1, $list[0]); } public function testIndexOf() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2, 3)); + $list->CustomPaging = true; + self::assertEquals(0, $list->indexOf(1)); + self::assertEquals(-1, $list->indexOf(0)); } public function testOffsetExists() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2, 3)); + $list->CustomPaging = true; + self::assertEquals(true, isset($list[0])); + self::assertEquals(false, isset($list[4])); } public function testOffsetGet() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2, 3)); + $list->CustomPaging = true; + self::assertEquals(2, $list[1]); } public function testToArray() { - throw new PHPUnit_Framework_IncompleteTestError(); + $list = new TPagedList(array(1, 2, 3)); + $list->CustomPaging = true; + self::assertEquals(array(1, 2, 3), $list->toArray()); } } -- cgit v1.2.3