50 lines
2.1 KiB
PHP
50 lines
2.1 KiB
PHP
<?php namespace Todaymade\Daux\Tree;
|
|
|
|
use Todaymade\Daux\Config;
|
|
|
|
class DirectoryTest extends \PHPUnit_Framework_TestCase {
|
|
|
|
public function providerSort()
|
|
{
|
|
return array(
|
|
array(["005_Fifth", "01_First"], ["01_First", "005_Fifth"]),
|
|
array(["005_Fifth", "Another", "01_First"], ["01_First", "005_Fifth", "Another"]),
|
|
array(["005_Fifth", "Another", "-Sticky", "01_First"], ["01_First", "005_Fifth", "Another", "-Sticky"]),
|
|
array(['01_before', '-Down'], ['01_before', '-Down']),
|
|
array(['01_before', '-Down-after', '-Down'], ['01_before', '-Down', '-Down-after']),
|
|
array(["01_numeric", "01_before"], ["01_before", "01_numeric"]),
|
|
array(["A_File", "01_A_File"], ["01_A_File", "A_File"]),
|
|
array(["A_File", "01_Continuing", "-01_Coming", "-02_Soon"], ["01_Continuing", "A_File", "-01_Coming", "-02_Soon"]),
|
|
array(["01_Getting_Started", "API_Calls", "200_Something_Else-Cool", "_5_Ways_to_Be_Happy"], ["01_Getting_Started", "200_Something_Else-Cool", "_5_Ways_to_Be_Happy", "API_Calls"]),
|
|
array(["01_Getting_Started", "API_Calls", "index", "200_Something_Else-Cool", "_5_Ways_to_Be_Happy"], ["index", "01_Getting_Started", "200_Something_Else-Cool", "_5_Ways_to_Be_Happy", "API_Calls"]),
|
|
array(["Before_but_after", "A_File", "Continuing"], ["A_File", "Before_but_after", "Continuing"]),
|
|
array(["01_GitHub_Flavored_Markdown", "Code_Test", "05_Code_Highlighting"], ["01_GitHub_Flavored_Markdown", "05_Code_Highlighting", "Code_Test"]),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @dataProvider providerSort
|
|
*/
|
|
public function testSort($list, $expected)
|
|
{
|
|
shuffle($list);
|
|
$directory = new Directory(new Root(new Config(), ''), 'dir');
|
|
|
|
foreach ($list as $value) {
|
|
$entry = new Content($directory, $value);
|
|
$entry->setName($value);
|
|
}
|
|
|
|
$directory->sort();
|
|
|
|
$final = [];
|
|
foreach ($directory->getEntries() as $obj) {
|
|
$final[] = $obj->getName();
|
|
}
|
|
|
|
$this->assertEquals($expected, $final);
|
|
}
|
|
|
|
|
|
}
|