コード例 #1
0
 /**
  * Check behavior of getStateParentsClassesNamesList() if the finder return all parent class of a state (including external classes).
  */
 public function testGetStateParentsClassesNamesList()
 {
     $this->getClassLoaderMock()->expects($this->any())->method('loadClass')->willReturnCallback(function ($class) {
         $parts = explode('\\', $class);
         $state = array_pop($parts);
         include_once $this->statedClass1Path . '/States/' . $state . '.php';
         return true;
     });
     $this->initializeFinder('Class1', $this->statedClass1Path);
     $this->assertEquals(array('Teknoo\\Tests\\Support\\MockState'), $this->finder->getStateParentsClassesNamesList('State4b'));
     $this->assertEquals(array('Class1\\States\\State4b', 'Teknoo\\Tests\\Support\\MockState'), $this->finder->getStateParentsClassesNamesList('State5'));
     $this->assertEquals(array('Class1\\States\\State5', 'Class1\\States\\State4b', 'Teknoo\\Tests\\Support\\MockState'), $this->finder->getStateParentsClassesNamesList('State6'));
 }
コード例 #2
0
ファイル: FactoryTrait.php プロジェクト: unialteri/states
 /**
  * Return the list of available alias for a state.
  *
  * @param string          $loadingStateName
  * @param FinderInterface $finderLoader
  *
  * @return string[]
  */
 private function computeStateAlias(string $loadingStateName, FinderInterface $finderLoader) : array
 {
     $parentStateClassNameList = [];
     $fullStateClassName = $this->getFullStateClassNameList();
     foreach ($finderLoader->getStateParentsClassesNamesList($loadingStateName) as $className) {
         if (isset($fullStateClassName[$className])) {
             $classNameParts = \explode('\\', $className);
             $parentStateClassNameList[] = \array_pop($classNameParts);
         }
     }
     return $parentStateClassNameList;
 }