diff options
author | Victor Häggqvist <[email protected]> | 2015-03-05 02:31:03 +0100 |
---|---|---|
committer | Victor Häggqvist <[email protected]> | 2015-03-05 02:31:03 +0100 |
commit | eef1ffb0f43783e28d0b931f270cab6d10ece2fb (patch) | |
tree | a6695da79c07ac5a099048252f8e8b5f65a2c995 /test/SortByFieldExtensionTest.php |
init
Diffstat (limited to 'test/SortByFieldExtensionTest.php')
-rw-r--r-- | test/SortByFieldExtensionTest.php | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/test/SortByFieldExtensionTest.php b/test/SortByFieldExtensionTest.php new file mode 100644 index 0000000..64bd11e --- /dev/null +++ b/test/SortByFieldExtensionTest.php @@ -0,0 +1,109 @@ +<?php +/** + * User: Victor Häggqvist + * Date: 3/4/15 + * Time: 3:12 AM + */ + +use Snilius\Twig\SortByFieldExtension; + +require_once 'Foo.php'; + +class SortByFieldExtensionTest extends PHPUnit_Framework_TestCase { + + public function testExtensionLoad() { + $loader = new Twig_Loader_Array(array('foo'=>'')); + $twig = new Twig_Environment($loader); + $twig->addExtension(new SortByFieldExtension()); + $this->addToAssertionCount(1); + $twig->render('foo'); + } + + public function testSortArray(){ + $base = array( + array( + "name" => "Redmine", + "desc" => "Issues Tracker", + "url" => "http://www.redmine.org/", + "oss" => "GPL", + "cost" => 0 + ), + array( + "name" => "GitLab", + "desc" => "Version Control", + "url" => "https://about.gitlab.com/", + "oss" => "GPL", + "cost" => 1, + ), + array( + "name" => "Jenkins", + "desc" => "Continous Integration", + "url" => "http://jenkins-ci.org/", + "oss" => "MIT", + "cost" => 0, + ), + array( + "name" => "Piwik", + "desc" => "Web Analytics", + "url" => "http://piwik.org/", + "oss" => "GPL", + "cost" => 1 + ) + ); + + $fact = array('GitLab','Jenkins','Piwik','Redmine'); + + $filter = new SortByFieldExtension(); + $sorted = $filter->sortByFieldFilter($base,'name'); + + for ($i = 0; $i < count($fact); $i++){ + $this->assertEquals($fact[$i], $sorted[$i]['name']); + } + } + + public function testSortObjects() { + $base = array(); + $ob1 = new Foo(); + $ob1->name = "Redmine"; + $base[]=$ob1; + + $ob2 = new Foo(); + $ob2->name = "GitLab"; + $base[]=$ob2; + + $ob3 = new Foo(); + $ob3->name = "Jenkins"; + $base[]=$ob3; + + $ob4 = new Foo(); + $ob4->name = "Jenkins"; + $base[]=$ob4; + + $fact = array('GitLab','Jenkins','Jenkins','Redmine'); + + $filter = new SortByFieldExtension(); + $sorted = $filter->sortByFieldFilter($base,'name'); + + for ($i = 0; $i < count($fact); $i++){ + $this->assertEquals($fact[$i], $sorted[$i]->name); + } + } + + public function testNonArrayBase() { + $filter = new SortByFieldExtension(); + $this->setExpectedException('InvalidArgumentException'); + $filter->sortByFieldFilter(1, ''); + } + + public function testInvalidField() { + $filter = new SortByFieldExtension(); + $this->setExpectedException('Exception'); + $filter->sortByFieldFilter(array(), null); + } + + public function testUnknownField() { + $filter = new SortByFieldExtension(); + $this->setExpectedException('Exception'); + $filter->sortByFieldFilter(array(new Foo()), 'bar'); + } +} |