public function testInstall()
 {
     $table = $this->getMockBuilder('\\SMW\\SQLStore\\TableBuilder\\Table')->disableOriginalConstructor()->getMock();
     $tableSchemaManager = $this->getMockBuilder('\\SMW\\SQLStore\\TableSchemaManager')->disableOriginalConstructor()->getMock();
     $tableSchemaManager->expects($this->once())->method('getTables')->will($this->returnValue(array($table)));
     $tableBuilder = $this->getMockBuilder('\\SMW\\SQLStore\\TableBuilder')->disableOriginalConstructor()->getMock();
     $tableBuilder->expects($this->once())->method('create');
     $tableIntegrityExaminer = $this->getMockBuilder('\\SMW\\SQLStore\\TableIntegrityExaminer')->disableOriginalConstructor()->getMock();
     $tableIntegrityExaminer->expects($this->once())->method('checkOnPostCreation');
     $instance = new Installer($tableSchemaManager, $tableBuilder, $tableIntegrityExaminer);
     $instance->setMessageReporter($this->spyMessageReporter);
     $instance->isFromExtensionSchemaUpdate(true);
     $this->assertTrue($instance->install());
 }
 /**
  * @since 2.5
  *
  * @return Installer
  */
 public function newInstaller()
 {
     $messageReporter = MessageReporterFactory::getInstance()->newNullMessageReporter();
     $options = $this->store->getOptions();
     $tableBuilder = TableBuilder::factory($this->store->getConnection(DB_MASTER));
     $tableBuilder->setMessageReporter($messageReporter);
     $tableIntegrityExaminer = new TableIntegrityExaminer($this->store);
     $tableSchemaManager = new TableSchemaManager($this->store);
     $installer = new Installer($tableSchemaManager, $tableBuilder, $tableIntegrityExaminer);
     if ($options->has(Installer::OPT_MESSAGEREPORTER)) {
         $installer->setMessageReporter($options->get(Installer::OPT_MESSAGEREPORTER));
     }
     $installer->isFromExtensionSchemaUpdate($options->has('isFromExtensionSchemaUpdate') ? $options->get('isFromExtensionSchemaUpdate') : false);
     return $installer;
 }