/** * @test * @testdox Synchronizer replaces value references */ public function synchronizerReplacesValueReferences() { $post = EntityUtils::preparePost(); $optionToSynchronize = [['vp_id' => 'site_icon', 'parent' => null]]; $postToSynchronize = [['vp_id' => $post['vp_id'], 'parent' => null]]; $previousSiteIcon = $this->storage->exists('site_icon') ? $this->storage->loadEntity('site_icon') : ''; $this->postStorage->save($post); $option = EntityUtils::prepareOption('site_icon', $post['vp_id']); $this->storage->save($option); $this->postsSynchronizer->synchronize(Synchronizer::SYNCHRONIZE_EVERYTHING, $postToSynchronize); $this->synchronizer->synchronize(Synchronizer::SYNCHRONIZE_EVERYTHING, $optionToSynchronize); DBAsserter::assertFilesEqualDatabase(); // cleanup if ($previousSiteIcon) { if (!isset($previousSiteIcon['option_value'])) { $previousSiteIcon['option_value'] = false; } $this->storage->save($previousSiteIcon); } else { $this->storage->delete($option); } $this->postStorage->delete($post); $this->synchronizer->reset(); $this->postsSynchronizer->reset(); $this->synchronizer->synchronize(Synchronizer::SYNCHRONIZE_EVERYTHING, $optionToSynchronize); $this->postsSynchronizer->synchronize(Synchronizer::SYNCHRONIZE_EVERYTHING, $postToSynchronize); }
/** * @test * @testdox Synchronizer restores shortcodes */ public function synchronizerRestoresShortcodes() { $this->createPostWithShortcode(); $this->usersSynchronizer->synchronize(Synchronizer::SYNCHRONIZE_EVERYTHING); $synchronizationTasks = [Synchronizer::SYNCHRONIZE_EVERYTHING]; while (count($synchronizationTasks)) { $task = array_shift($synchronizationTasks); $remainingTasks = $this->synchronizer->synchronize($task); $synchronizationTasks = array_merge($synchronizationTasks, $remainingTasks); } DBAsserter::assertFilesEqualDatabase(); $this->deletePost(); $this->synchronizer->reset(); $this->usersSynchronizer->reset(); $this->synchronizer->synchronize(Synchronizer::SYNCHRONIZE_EVERYTHING); $this->usersSynchronizer->synchronize(Synchronizer::SYNCHRONIZE_EVERYTHING); DBAsserter::assertFilesEqualDatabase(); }