private function sort(TestSuite $suite, $mergeMode)
 {
     $sorter = new PrioritySorter($this->getErrors(), $this->getPassed(), $mergeMode);
     $sorter->sort($suite);
 }
 public function testNestedSortingGroups()
 {
     $suite1 = new TestSuite('suite1', 'suite1');
     $suite2 = new TestSuite('suite2', 'suite2');
     $suite2->addTest(new Test('test3'), array('g1'));
     $suite1->addTestSuite($suite2);
     $suite1->addTest(new Test('test1'), array('g1'));
     $suite1->addTest(new Test('test2'), array('g1'));
     $suite1->addTest(new Test('test4'), array('g1'));
     $suite1->addTest(new Test('test5'), array('g1'));
     $tests = $suite1->tests();
     $tests0 = $tests[0]->tests();
     $this->assertSame('suite2', $tests[0]->getName());
     $this->assertSame('test3', $tests0[0]->getName());
     $this->assertSame('test1', $tests[1]->getName());
     $this->assertSame('test2', $tests[2]->getName());
     $this->assertSame('test4', $tests[3]->getName());
     $this->assertSame('test5', $tests[4]->getName());
     $groupDetails = Util::getInvisibleProperty($suite1, 'groups', 'getGroupDetails');
     $tests = $groupDetails['g1'];
     $tests0 = $tests[0]->tests();
     $this->assertSame('suite2', $tests[0]->getName());
     $this->assertSame('test3', $tests0[0]->getName());
     $this->assertSame('test1', $tests[1]->getName());
     $this->assertSame('test2', $tests[2]->getName());
     $this->assertSame('test4', $tests[3]->getName());
     $this->assertSame('test5', $tests[4]->getName());
     $sorter = new PrioritySorter(array(array('class' => 'PHPUnit\\Runner\\CleverAndSmart\\Unit\\Test', 'test' => 'test2')));
     $sorter->sort($suite1);
     $tests = $suite1->tests();
     $tests1 = $tests[1]->tests();
     $this->assertSame('test2', $tests[0]->getName());
     $this->assertSame('suite2', $tests[1]->getName());
     $this->assertSame('test3', $tests1[0]->getName());
     $this->assertSame('test1', $tests[2]->getName());
     $this->assertSame('test4', $tests[3]->getName());
     $this->assertSame('test5', $tests[4]->getName());
     $groupDetails = Util::getInvisibleProperty($suite1, 'groups', 'getGroupDetails');
     $tests = $groupDetails['g1'];
     $tests1 = $tests[1]->tests();
     $this->assertSame('test2', $tests[0]->getName());
     $this->assertSame('suite2', $tests[1]->getName());
     $this->assertSame('test3', $tests1[0]->getName());
     $this->assertSame('test1', $tests[2]->getName());
     $this->assertSame('test4', $tests[3]->getName());
     $this->assertSame('test5', $tests[4]->getName());
 }
 private function sort(TestSuite $suite)
 {
     $sorter = new PrioritySorter($this->storage->getRecordings(array(StorageInterface::STATUS_ERROR, StorageInterface::STATUS_FAILURE, StorageInterface::STATUS_CANCEL, StorageInterface::STATUS_FATAL_ERROR, StorageInterface::STATUS_SKIPPED, StorageInterface::STATUS_INCOMPLETE), false), $this->storage->getRecordings(array(StorageInterface::STATUS_PASSED)));
     $sorter->sort($suite);
 }