Example #1
0
 public function testIterator()
 {
     $dir = new Directory($this->root->url() . '/prj');
     $dir->make();
     $path = $dir->toPath();
     $composer = $path->append('composer.json');
     $file = $composer->toFileDescriptor()->toFile();
     $file->write('{}');
     $vendor = $path->append('vendor');
     $folder = $vendor->toFileDescriptor()->toDirectory();
     $folder->make();
     $arr = new ArrayObject();
     foreach ($dir as $k => $file) {
         if (!$file->isDot()) {
             $this->assertTrue($file instanceof FileDescriptor);
             $arr[$k] = $file->getFilename();
             if ($file->isFile()) {
                 $this->assertEquals('composer.json', $file->getFilename());
             }
             if ($file->isDir()) {
                 $this->assertEquals('vendor', $file->getFilename());
             }
         }
     }
     $this->assertEquals(['composer.json', 'vendor'], $arr->sort()->toArray());
 }
Example #2
0
 public function testSort()
 {
     $unsorted = [5, 2, 8, 3, 9, 4, 6, 1, 7, 10];
     $list = new ArrayObject($unsorted);
     $this->assertEquals(range(1, 10), $list->sort()->toArray());
     $list = new ArrayObject($unsorted);
     $cmp = function ($a, $b) {
         if ($a == $b) {
             return 0;
         }
         return $a < $b ? -1 : 1;
     };
     $this->assertEquals(range(1, 10), $list->sort($cmp)->toArray());
     $items = ['x', 'c', 'a', 't', 'm'];
     $list = new ArrayObject();
     foreach ($items as $item) {
         $list->push(new Item($item));
     }
     $list->sort(new ComparableComparator());
     $this->assertEquals(['a', 'c', 'm', 't', 'x'], $list->map(function ($item) {
         return $item->getContent();
     })->toArray());
 }