@@ -559,4 +559,99 @@ private static function GetStep($index)
559559
560560 return $ aSteps [$ index ] ?? null ;
561561 }
562+
563+ public function ProviderGetSelectedModules ()
564+ {
565+ return [
566+ 'No extension selected ' => [
567+ 'aSelected ' => [],
568+ 'aExpectedModules ' => [],
569+ 'aExpectedExtensions ' => [],
570+ ],
571+ 'One extension selected ' => [
572+ 'aSelected ' => ['_0 ' => '_0 ' ],
573+ 'aExpectedModules ' => ['combodo-sample-module ' => true ],
574+ 'aExpectedExtensions ' => ['combodo-sample ' ],
575+ ],
576+ ];
577+ }
578+
579+ /**
580+ * @dataProvider ProviderGetSelectedModules
581+ */
582+ public function testGetSelectedModules ($ aSelectedExtensions , $ aExpectedModules , $ aExpectedExtensions )
583+ {
584+ $ aExtensionsMapData = [
585+ 'combodo-sample ' => [
586+ 'installed ' => false ,
587+ ],
588+ ];
589+ $ this ->oStep ->setExtensionMap (iTopExtensionsMapFake::createFromArray ($ aExtensionsMapData , ));
590+
591+ //GetSelectedModules
592+ $ aStepInfo = [
593+ 'title ' => 'Extensions ' ,
594+ 'description ' => '' ,
595+ 'banner ' => '' ,
596+ 'options ' => [
597+ [
598+ 'extension_code ' => 'combodo-sample ' ,
599+ 'title ' => 'Sample extension ' ,
600+ 'description ' => '' ,
601+ 'more_info ' => '' ,
602+ 'default ' => true ,
603+ 'modules ' => [
604+ 'combodo-sample-module ' ,
605+ ],
606+ 'mandatory ' => false ,
607+ 'source_label ' => '' ,
608+ 'uninstallable ' => true ,
609+ 'missing ' => false ,
610+ ],
611+ ],
612+ ];
613+
614+ $ aModules = [];
615+ $ aExtensions = [];
616+ $ this ->oStep ->GetSelectedModules ($ aStepInfo , $ aSelectedExtensions , $ aModules , '' , '' , $ aExtensions );
617+ $ this ->assertEquals ($ aExpectedModules , $ aModules );
618+ $ this ->assertEquals ($ aExpectedExtensions , $ aExtensions );
619+ }
620+
621+ public function testGetSelectedModulesShouldThrowAnExceptionWhenAnySelectedExtensionDoesNotHaveAnyAssociatedModules ()
622+ {
623+ $ aExtensionsMapData = [
624+ 'combodo-sample ' => [
625+ 'installed ' => false ,
626+ ],
627+ ];
628+ $ this ->oStep ->setExtensionMap (iTopExtensionsMapFake::createFromArray ($ aExtensionsMapData , ));
629+
630+ //GetSelectedModules
631+ $ aStepInfo = [
632+ 'title ' => 'Extensions ' ,
633+ 'description ' => '' ,
634+ 'banner ' => '' ,
635+ 'options ' => [
636+ [
637+ 'extension_code ' => 'combodo-sample ' ,
638+ 'title ' => 'Sample extension ' ,
639+ 'description ' => '' ,
640+ 'more_info ' => '' ,
641+ 'default ' => true ,
642+ 'modules ' => [],
643+ 'mandatory ' => false ,
644+ 'source_label ' => '' ,
645+ 'uninstallable ' => true ,
646+ 'missing ' => false ,
647+ ],
648+ ],
649+ ];
650+
651+ $ aModules = [];
652+ $ aExtensions = [];
653+ $ this ->expectException ('Exception ' );
654+ $ this ->oStep ->GetSelectedModules ($ aStepInfo , ['_0 ' => '_0 ' ], $ aModules , '' , '' , $ aExtensions );
655+ }
656+
562657}
0 commit comments