Example #1
0
 /**
  * Tests modules data returns array and saving in DB
  *
  * @dataProvider itemDataProvider
  * @return void
  */
 public function testGetModuleDataRefreshOrStatement($data)
 {
     $moduleCollectionMock = $this->getMockBuilder('Magento\\NewRelicReporting\\Model\\ResourceModel\\Module\\Collection')->disableOriginalConstructor()->getMock();
     /** @var \Magento\NewRelicReporting\Model\Module|\PHPUnit_Framework_MockObject_MockObject $itemMock */
     $itemMock = $this->getMock('Magento\\NewRelicReporting\\Model\\Module', ['getName', 'getData', 'setData', 'getState', 'save'], [], '', false);
     $modulesMockArray = ['Module_Name1' => ['name' => 'Module_Name1', 'setup_version' => '2.0.0', 'sequence' => []]];
     $itemMock->setData($data);
     $testChangesMockArray = ['entity_id' => '3', 'name' => 'Name', 'active' => 'false', 'state' => 'enabled', 'setup_version' => '2.0.0', 'some_param' => 'some_value', 'updated_at' => '2015-09-02 18:38:17'];
     $itemMockArray = [$itemMock];
     $enabledModulesMockArray = ['Module_Name2'];
     $allModulesMockArray = ['Module_Name1', 'Module_Name2'];
     $this->moduleCollectionFactoryMock->expects($this->any())->method('create')->willReturn($moduleCollectionMock);
     $this->moduleFactoryMock->expects($this->any())->method('create')->willReturn($itemMock);
     $itemMock->expects($this->any())->method('setData')->willReturnSelf();
     $itemMock->expects($this->any())->method('save')->willReturnSelf();
     $itemMock->expects($this->any())->method('getState')->willReturn($data['state']);
     $itemMock->expects($this->any())->method('getName')->willReturn($data['name']);
     $moduleCollectionMock->expects($this->any())->method('getItems')->willReturn($itemMockArray);
     $itemMock->expects($this->any())->method('getData')->willReturn($testChangesMockArray);
     $this->fullModuleListMock->expects($this->once())->method('getAll')->willReturn($modulesMockArray);
     $this->fullModuleListMock->expects($this->any())->method('getNames')->willReturn($allModulesMockArray);
     $this->moduleListMock->expects($this->any())->method('getNames')->willReturn($enabledModulesMockArray);
     $this->moduleManagerMock->expects($this->any())->method('isOutputEnabled')->will($this->returnValue(true));
     $this->assertInternalType('array', $this->model->getModuleData());
 }
Example #2
0
 /**
  * Collects required data about the modules
  *
  * @param bool $refresh
  * @return array
  */
 public function getModuleData($refresh = true)
 {
     $callback = function (Module $value) {
         return $value->getName();
     };
     $configModules = $this->getAllModules();
     /** @var Module[] $dbModuleArray */
     $dbModuleArray = $this->moduleCollectionFactory->create()->getItems();
     $nameValues = array_map($callback, $dbModuleArray);
     $moduleChanges = [];
     foreach ($configModules as $moduleName => $module) {
         unset($module['sequence']);
         $state = $this->getState($moduleName);
         $active = $this->getActive($moduleName);
         $module['state'] = $state;
         $module['active'] = $active;
         if (!in_array($moduleName, $nameValues)) {
             $moduleChanges[] = $this->getNewModuleChanges($moduleName, $active, $module['setup_version'], $state);
         } else {
             $dbModule = $dbModuleArray[array_search($moduleName, $nameValues)];
             $changeTest = $dbModule->getData();
             $changes = array_diff($module, $changeTest);
             $changesCleanArray = $this->getCleanChangesArray($changes);
             if (count($changesCleanArray) > 0 || $this->moduleManager->isOutputEnabled($changeTest['name']) && $module['setup_version'] != null) {
                 $data = ['entity_id' => $changeTest['entity_id'], 'name' => $changeTest['name'], 'active' => $active, 'setup_version' => $module['setup_version'], 'state' => $state];
                 if ($refresh) {
                     $dbModule->setData($data);
                     $dbModule->save();
                 }
                 $moduleChanges[] = ['name' => $data['name'], 'setup_version' => $data['setup_version'], 'type' => $state];
             }
         }
     }
     $arrayModuleNames = array_keys($configModules);
     $uninstalledModuleChanges = $this->setUninstalledModuleChanges($dbModuleArray, $arrayModuleNames);
     if (is_array($uninstalledModuleChanges)) {
         $moduleChanges[] = $uninstalledModuleChanges;
     }
     $finalObject = $this->getFinalCounts($moduleChanges);
     return $finalObject;
 }