/** * drop instance * * @param ConfigEntity $config 현재 설정 되어 있는 config * @return void */ public function remove(ConfigEntity $config) { $this->connection->beginTransaction(); $this->configHandler->remove($config); $this->dropDivisionTable($config); $this->connection->commit(); }
/** * drop instance * * @param ConfigEntity $config 현재 설정 되어 있는 config * @param int $fetchCount fetch count * @return void */ public function remove(ConfigEntity $config, $fetchCount = 10) { $this->repo->connection()->beginTransaction(); $this->repo->dropDivisionTable($config); $this->configHandler->remove($config); // division table 은 drop 했으므로 처리하지 않는다. $config->set('division', false); while ($docs = $this->repo->fetch(['instanceId' => $config->get('instanceId')], null, $config, $fetchCount)) { foreach ($docs as $doc) { $this->repo->delete(new DocumentEntity($doc), $config); } } $this->repo->connection()->commit(); }
/** * test add config * * @return void */ public function testAddConfig() { $instanceConfig1Params = ['instanceId' => 'instance1', 'instanceName' => 'instance1Name', 'param1' => 'param1']; $instanceConfig1 = m::mock('Xpressengine\\Config\\ConfigEntity'); $instanceConfig1->shouldReceive('get')->with('instanceId')->andReturn('instance1'); $instanceConfig1->shouldReceive('getPureAll')->andReturn($instanceConfig1Params); $instanceConfig1->shouldReceive('diff')->andReturn([]); $configManager = m::mock('Xpressengine\\Config\\ConfigManager'); $configManager->shouldReceive('add')->with(sprintf('%s.instance1', ConfigHandler::CONFIG_NAME), $instanceConfig1Params)->andReturn($instanceConfig1); $configManager->shouldReceive('put')->with(sprintf('%s.instance1', ConfigHandler::CONFIG_NAME), $instanceConfig1Params)->andReturn($instanceConfig1); $configManager->shouldReceive('remove'); $configManager->shouldReceive('get')->with(sprintf('%s.instance1', ConfigHandler::CONFIG_NAME))->andReturn($instanceConfig1); /** @var \Xpressengine\Config\ConfigManager $configManager */ $configHandler = new ConfigHandler($configManager); $params = ['param1' => 'param1']; $config = $configHandler->makeEntity('instance1', $params); $this->assertInstanceOf('Xpressengine\\Config\\ConfigEntity', $config); /** @var \Xpressengine\Config\ConfigEntity $instanceConfig1 */ $configHandler->add($instanceConfig1); $configHandler->put($instanceConfig1); $configHandler->remove($instanceConfig1); }