32 $dependencyResolver = $this->
getAccessibleMock(
'TYPO3\\CMS\\Core\\Package\\DependencyResolver', array(
'findFrameworkPackages'));
33 $dependencyResolver->expects($this->any())->method(
'findFrameworkPackages')->willReturn($frameworkPackageKeys);
34 $dependencyGraph = $dependencyResolver->_call(
'buildDependencyGraph', $unsortedPackageStatesConfiguration);
36 $this->assertEquals($expectedGraph, $dependencyGraph);
44 $dependencyResolver = $this->
getAccessibleMock(
'TYPO3\\CMS\\Core\\Package\\DependencyResolver', array(
'findFrameworkPackages'));
45 $dependencyResolver->expects($this->any())->method(
'findFrameworkPackages')->willReturn($frameworkPackageKeys);
46 $sortedPackageStatesConfiguration = $dependencyResolver->_call(
'sortPackageStatesConfigurationByDependency', $unsortedPackageStatesConfiguration);
48 $this->assertEquals($expectedSortedPackageStatesConfiguration, $sortedPackageStatesConfiguration,
'The package states configurations have not been ordered according to their dependencies!');
56 $dependencyResolver = $this->
getAccessibleMock(
'TYPO3\\CMS\\Core\\Package\\DependencyResolver', array(
'findFrameworkPackages'));
57 $dependencyResolver->expects($this->any())->method(
'findFrameworkPackages')->willReturn(array());
58 $dependencyGraph = $dependencyResolver->_call(
'buildDependencyGraphForPackages', $packages, array_keys($packages));
60 $this->assertEquals($expectedGraph, $dependencyGraph);
68 $unsortedPackageStatesConfiguration = array(
71 'dependencies' => array(
'B'),
75 'dependencies' => array(
'A')
79 $dependencyResolver = $this->
getAccessibleMock(
'TYPO3\\CMS\\Core\\Package\\DependencyResolver', array(
'findFrameworkPackages'));
80 $dependencyResolver->expects($this->any())->method(
'findFrameworkPackages')->willReturn(array());
81 $dependencyResolver->_call(
'sortPackageStatesConfigurationByDependency', $unsortedPackageStatesConfiguration);
91 'dependencies' => array(
'B'),
94 $dependencyResolver = $this->
getAccessibleMock(
'\TYPO3\CMS\Core\Package\DependencyResolver', array(
'dummy'));
95 $dependencyResolver->_call(
'buildDependencyGraphForPackages', $packages, array_keys($packages));
103 'TYPO3 Flow Packages' => array(
105 'TYPO3.Flow' => array(
107 'dependencies' => array(
'Symfony.Component.Yaml',
'Doctrine.Common',
'Doctrine.DBAL',
'Doctrine.ORM')
109 'Doctrine.ORM' => array(
111 'dependencies' => array(
'Doctrine.Common',
'Doctrine.DBAL')
113 'Doctrine.Common' => array(
115 'dependencies' => array()
117 'Doctrine.DBAL' => array(
119 'dependencies' => array(
'Doctrine.Common')
121 'Symfony.Component.Yaml' => array(
123 'dependencies' => array()
130 'TYPO3.Flow' => array(
131 'TYPO3.Flow' => FALSE,
132 'Doctrine.ORM' => TRUE,
133 'Doctrine.Common' => TRUE,
134 'Doctrine.DBAL' => TRUE,
135 'Symfony.Component.Yaml' => TRUE,
137 'Doctrine.ORM' => array(
138 'TYPO3.Flow' => FALSE,
139 'Doctrine.ORM' => FALSE,
140 'Doctrine.Common' => TRUE,
141 'Doctrine.DBAL' => TRUE,
142 'Symfony.Component.Yaml' => FALSE,
144 'Doctrine.Common' => array(
145 'TYPO3.Flow' => FALSE,
146 'Doctrine.ORM' => FALSE,
147 'Doctrine.Common' => FALSE,
148 'Doctrine.DBAL' => FALSE,
149 'Symfony.Component.Yaml' => FALSE,
151 'Doctrine.DBAL' => array(
152 'TYPO3.Flow' => FALSE,
153 'Doctrine.ORM' => FALSE,
154 'Doctrine.Common' => TRUE,
155 'Doctrine.DBAL' => FALSE,
156 'Symfony.Component.Yaml' => FALSE,
158 'Symfony.Component.Yaml' => array(
159 'TYPO3.Flow' => FALSE,
160 'Doctrine.ORM' => FALSE,
161 'Doctrine.Common' => TRUE,
162 'Doctrine.DBAL' => FALSE,
163 'Symfony.Component.Yaml' => FALSE,
167 'TYPO3 CMS Extensions' => array(
171 'dependencies' => array(),
175 'dependencies' => array(
'core'),
179 'dependencies' => array(
'core',
'setup')
183 'dependencies' => array(
'extbase'),
187 'dependencies' => array(
'core'),
189 'pt_extbase' => array (
191 'dependencies' => array(
'extbase'),
195 'dependencies' => array(),
199 'core',
'setup',
'openid',
'extbase' 208 'pt_extbase' => FALSE,
217 'pt_extbase' => FALSE,
226 'pt_extbase' => FALSE,
235 'pt_extbase' => FALSE,
244 'pt_extbase' => FALSE,
247 'pt_extbase' => array(
253 'pt_extbase' => FALSE,
262 'pt_extbase' => FALSE,
267 'Dummy Packages' => array(
271 'dependencies' => array(
'B',
'D',
'C'),
275 'dependencies' => array()
279 'dependencies' => array(
'E')
283 'dependencies' => array(
'E'),
287 'dependencies' => array(),
291 'dependencies' => array(),
356 'TYPO3 Flow Packages' => array(
358 'TYPO3.Flow' => array(
360 'dependencies' => array(
'Symfony.Component.Yaml',
'Doctrine.Common',
'Doctrine.DBAL',
'Doctrine.ORM')
362 'Doctrine.ORM' => array(
364 'dependencies' => array(
'Doctrine.Common',
'Doctrine.DBAL')
366 'Doctrine.Common' => array(
368 'dependencies' => array()
370 'Doctrine.DBAL' => array(
372 'dependencies' => array(
'Doctrine.Common')
374 'Symfony.Component.Yaml' => array(
376 'dependencies' => array()
383 'Doctrine.Common' => array(
385 'dependencies' => array()
387 'Doctrine.DBAL' => array(
389 'dependencies' => array(
'Doctrine.Common')
391 'Doctrine.ORM' => array(
393 'dependencies' => array(
'Doctrine.Common',
'Doctrine.DBAL')
395 'Symfony.Component.Yaml' => array(
397 'dependencies' => array()
399 'TYPO3.Flow' => array(
401 'dependencies' => array(
'Symfony.Component.Yaml',
'Doctrine.Common',
'Doctrine.DBAL',
'Doctrine.ORM')
405 'TYPO3 CMS Extensions' => array(
409 'dependencies' => array(),
413 'dependencies' => array(
'core'),
417 'dependencies' => array(
'core',
'setup')
421 'dependencies' => array(
'extbase'),
425 'dependencies' => array(
'core'),
427 'pt_extbase' => array (
429 'dependencies' => array(
'extbase'),
433 'dependencies' => array(),
437 'core',
'setup',
'openid',
'extbase' 442 'dependencies' => array(),
446 'dependencies' => array(
'core'),
450 'dependencies' => array(
'core',
'setup')
454 'dependencies' => array(
'core'),
458 'dependencies' => array(),
460 'pt_extbase' => array (
462 'dependencies' => array(
'extbase'),
466 'dependencies' => array(
'extbase'),
470 'Dummy Packages' => array(
474 'dependencies' => array(
'B',
'D',
'C'),
478 'dependencies' => array()
482 'dependencies' => array(
'E')
486 'dependencies' => array(
'E'),
490 'dependencies' => array(),
494 'dependencies' => array(),
503 'dependencies' => array(),
507 'dependencies' => array(),
511 'dependencies' => array(
'E'),
515 'dependencies' => array(),
519 'dependencies' => array(
'E'),
523 'dependencies' => array(
'B',
'D',
'C'),
535 'TYPO3 Flow Packages' => array(
537 'TYPO3.Flow' => array(
539 'dependencies' => array(
'Symfony.Component.Yaml',
'Doctrine.Common',
'Doctrine.DBAL',
'Doctrine.ORM')
541 'Doctrine.ORM' => array(
543 'dependencies' => array(
'Doctrine.Common',
'Doctrine.DBAL')
545 'Doctrine.Common' => array(
547 'dependencies' => array()
549 'Doctrine.DBAL' => array(
551 'dependencies' => array(
'Doctrine.Common')
553 'Symfony.Component.Yaml' => array(
555 'dependencies' => array()
559 'TYPO3.Flow' => array(
560 'TYPO3.Flow' => FALSE,
561 'Doctrine.ORM' => TRUE,
562 'Doctrine.Common' => TRUE,
563 'Doctrine.DBAL' => TRUE,
564 'Symfony.Component.Yaml' => TRUE,
566 'Doctrine.ORM' => array(
567 'TYPO3.Flow' => FALSE,
568 'Doctrine.ORM' => FALSE,
569 'Doctrine.Common' => TRUE,
570 'Doctrine.DBAL' => TRUE,
571 'Symfony.Component.Yaml' => FALSE,
573 'Doctrine.Common' => array(
574 'TYPO3.Flow' => FALSE,
575 'Doctrine.ORM' => FALSE,
576 'Doctrine.Common' => FALSE,
577 'Doctrine.DBAL' => FALSE,
578 'Symfony.Component.Yaml' => FALSE,
580 'Doctrine.DBAL' => array(
581 'TYPO3.Flow' => FALSE,
582 'Doctrine.ORM' => FALSE,
583 'Doctrine.Common' => TRUE,
584 'Doctrine.DBAL' => FALSE,
585 'Symfony.Component.Yaml' => FALSE,
587 'Symfony.Component.Yaml' => array(
588 'TYPO3.Flow' => FALSE,
589 'Doctrine.ORM' => FALSE,
590 'Doctrine.Common' => FALSE,
591 'Doctrine.DBAL' => FALSE,
592 'Symfony.Component.Yaml' => FALSE,
596 'TYPO3 CMS Extensions' => array(
600 'dependencies' => array(),
604 'dependencies' => array(
'core',
'setup')
606 'scheduler' => array (
608 'dependencies' => array(
'core'),
612 'dependencies' => array(
'core'),
616 'dependencies' => array(
'core'),
624 'scheduler' => FALSE,
631 'scheduler' => FALSE,
634 'scheduler' => array (
638 'scheduler' => FALSE,
645 'scheduler' => FALSE,
652 'scheduler' => FALSE,
657 'Dummy Packages' => array(
661 'dependencies' => array(
'B',
'D',
'C'),
665 'dependencies' => array()
669 'dependencies' => array(
'E')
673 'dependencies' => array(
'E'),
677 'dependencies' => array(),
681 'dependencies' => array(),
735 'Suggestions without reverse dependency' => array(
739 'suggestions' => array(
'B'),
746 'dependencies' => array(
'A')
767 'Suggestions with reverse dependency' => array(
771 'suggestions' => array(
'B'),
775 'dependencies' => array(
'A')
779 'dependencies' => array(
'A')
808 'Simple path' => array(
810 'A' => array(
'A' => FALSE,
'B' => FALSE,
'C' => FALSE,
'Z' => TRUE),
811 'B' => array(
'A' => FALSE,
'B' => FALSE,
'C' => FALSE,
'Z' => FALSE),
812 'C' => array(
'A' => FALSE,
'B' => FALSE,
'C' => FALSE,
'Z' => FALSE),
813 'Z' => array(
'A' => FALSE,
'B' => FALSE,
'C' => FALSE,
'Z' => FALSE)
820 'A' => array(
'A' => FALSE,
'B' => TRUE,
'C' => FALSE,
'Z' => FALSE),
821 'B' => array(
'A' => FALSE,
'B' => FALSE,
'C' => FALSE,
'Z' => FALSE),
822 'C' => array(
'A' => FALSE,
'B' => TRUE,
'C' => FALSE,
'Z' => FALSE),
823 'Z' => array(
'A' => FALSE,
'B' => TRUE,
'C' => FALSE,
'Z' => FALSE)
828 'Longer path' => array(
830 'A' => array(
'A' => FALSE,
'B' => TRUE,
'C' => TRUE,
'Z' => TRUE),
831 'B' => array(
'A' => FALSE,
'B' => FALSE,
'C' => FALSE,
'Z' => FALSE),
832 'C' => array(
'A' => FALSE,
'B' => FALSE,
'C' => FALSE,
'Z' => TRUE),
833 'Z' => array(
'A' => FALSE,
'B' => FALSE,
'C' => FALSE,
'Z' => FALSE)
850 $dependencyResolver = $this->
getAccessibleMock(
'TYPO3\\CMS\\Core\\Package\\DependencyResolver', array(
'dummy'));
851 $path = $dependencyResolver->_call(
'findPathInGraph', $graph, $from, $to);
853 $this->assertSame($expected, $path);
buildDependencyGraphForPackagesBuildsCorrectGraph($packages, $expectedGraph)
buildDependencyGraphBuildsCorrectGraph(array $unsortedPackageStatesConfiguration, array $frameworkPackageKeys, array $expectedGraph)
sortPackageStatesConfigurationByDependencyMakesSureThatDependantPackagesAreStandingBeforeAPackageInTheInternalPackagesAndPackagesConfigurationArrays($unsortedPackageStatesConfiguration, $frameworkPackageKeys, $expectedSortedPackageStatesConfiguration)
buildDependencyGraphForPackagesThrowsExceptionWhenDependencyOnUnavailablePackageDetected()
buildDependencyGraphBuildsCorrectGraphDataProvider()
buildDependencyGraphForPackagesBuildsCorrectGraphDataProvider()
sortPackageStatesConfigurationByDependencyThrowsExceptionWhenCycleDetected()
findPathInGraphReturnsCorrectPathDataProvider()
getAccessibleMock( $originalClassName, array $methods=array(), array $arguments=array(), $mockClassName='', $callOriginalConstructor=TRUE, $callOriginalClone=TRUE, $callAutoload=TRUE)
packageSortingDataProvider()
findPathInGraphReturnsCorrectPath(array $graph, $from, $to, array $expected)