public function testPersistAndMerge() { $configId = new EntityConfigId('entity', self::ENTITY_CLASS); $config1 = $this->getConfig($configId, ['val1' => '1', 'val2' => '1']); $config2 = $this->getConfig($configId, ['val2' => '2_new', 'val3' => '3']); $expectedConfig = $this->getConfig($configId, ['val1' => '1', 'val2' => '2_new', 'val3' => '3']); $this->configManager->persist($config1); $this->configManager->merge($config2); $toBePersistedConfigs = $this->configManager->getUpdateConfig(); $this->assertEquals([$expectedConfig], $toBePersistedConfigs); }
public function testPersistAndMerge() { $configId = new EntityConfigId('entity', self::ENTITY_CLASS); $config1 = new Config($configId); $config1->set('val1', '1'); $config1->set('val2', '2'); $config2 = new Config($configId); $config2->set('val2', '2_new'); $config2->set('val3', '3'); $expectedConfig = new Config($configId); $expectedConfig->set('val1', '1'); $expectedConfig->set('val2', '2_new'); $expectedConfig->set('val3', '3'); $this->configManager->persist($config1); $this->configManager->merge($config2); $toBePersistedConfigs = $this->configManager->getUpdateConfig(); $this->assertEquals([$expectedConfig], $toBePersistedConfigs); }
/** * Creates a log entry contains all changed configs * * @param ConfigManager $configManager * * @return ConfigLog|null */ public function buildLogEntry(ConfigManager $configManager) { $user = $this->getUser(); if (null === $user) { return null; } $log = new ConfigLog(); foreach ($configManager->getUpdateConfig() as $config) { $diff = $this->computeChanges($config, $configManager); if (null !== $diff) { $log->addDiff($diff); } } if ($log->getDiffs()->isEmpty()) { return null; } $log->setUser($user); return $log; }