/** * @test */ public function it_should_get_aliases_with_an_index_prefix() { /** * * Set * * @var \Mockery\Mock $index * @var \Mockery\Mock $proxy * @var \Mockery\Mock $client */ list($index, $proxy, $client) = $this->getMocks('bar_'); // Mock the self::$client variable am::double('Menthol\\Flexible\\Index', ['self::$client' => $client]); /** * * Expectation * */ $client->shouldReceive('indices->getAlias')->twice()->with(['name' => 'bar_mock']); /** * * Assertion * */ Index::getAlias('mock'); Index::getAlias('bar_mock'); }
/** * @param bool $relations * @param int $batchSize * @param array $mapping * @param callable $callback * @internal param bool $force * @internal param array $params */ public function reindex($relations = false, $batchSize = 750, $mapping = [], callable $callback = null) { $model = $this->config['model']; $name = $this->config['index']->getName(); $newName = $name . '_' . date("YmdHis"); $relations = $relations ? App::make('Menthol\\Flexible\\Config')->get('paths.' . get_class($model)) : []; Index::clean($name); $index = App::make('menthol.flexible.index', array('name' => $newName, 'proxy' => $this)); $index->create($mapping); if ($index->aliasExists($name)) { $index->import($model, $relations, $batchSize, $callback); $remove = []; foreach (Index::getAlias($name) as $index => $aliases) { $remove = ['remove' => ['index' => $index, 'alias' => $name]]; } $add = ['add' => ['index' => $newName, 'alias' => $name]]; $actions[] = array_merge($remove, $add); Index::updateAliases(['actions' => $actions]); Index::clean($name); } else { if ($this->config['index']->exists()) { $this->config['index']->delete(); } $actions[] = ['add' => ['index' => $newName, 'alias' => $name]]; Index::updateAliases(['actions' => $actions]); $index->import($model, $relations, $batchSize, $callback); } Index::refresh($name); }