/** * destroy document instance * * @param string $instanceId instance id * @param int $chunk chunk count * @return void */ public function destroyInstance($instanceId, $chunk = 100) { $config = $this->configHandler->get($instanceId); $this->instanceManager->remove($config); $documentHandler = $this; Document::where('instanceId', $config->get('instanceId'))->chunk($chunk, function ($docs) use($documentHandler) { foreach ($docs as $doc) { $documentHandler->remove($doc); } }); }
/** * test remove instance * * @return void */ public function testRemove() { $repo = $this->repo; $configHandler = $this->configHandler; $manager = new InstanceManager($repo, $configHandler); $config = $this->getConfigEntity(); $config->shouldReceive('get')->with('division')->andReturn(true); $config->shouldReceive('set'); $config->shouldReceive('get')->with('instanceId')->andReturn('instanceId'); $repo->shouldReceive('dropDivisionTable'); $repo->shouldReceive('fetch')->once()->andReturn([['id' => 'id1'], ['id' => 'id2']]); $repo->shouldReceive('fetch')->once()->andReturn([]); $repo->shouldReceive('delete'); $configHandler->shouldReceive('remove'); $manager->remove($config); }
/** * test remove instance * * @return void */ public function testRemove() { $instanceId = 'instance-id'; $configHandler = $this->configHandler; $config = $this->getConfigEntity(); $config->shouldReceive('get')->with('division')->andReturn(true); $config->shouldReceive('get')->with('instanceId')->andReturn($instanceId); $configHandler->shouldReceive('remove'); $schemaBuilder = $this->getSchemaBuilder(); $schemaBuilder->shouldReceive('hasTable')->andReturn(false); $this->conn->shouldReceive('getSchemaBuilder')->andReturn($schemaBuilder); $manager = new InstanceManager($this->conn, $configHandler); $manager->remove($config); }
/** * destroy document instance * * @param string $instanceId instance id * @return void */ public function destroyInstance($instanceId) { $documentConfig = $this->configHandler->get($instanceId); $this->instanceManager->remove($documentConfig); }