/** * get dynamic field config list * * @param ConfigEntity $config board config entity * @return array */ public function getDynamicFields(ConfigEntity $config) { $configs = $this->dynamicField->gets($config->get('documentGroup')); if (count($configs) == 0) { return []; } return $configs; }
/** * get dynamic fields by group name * * @param string $group config group name * @return \Generator */ public function gets($group) { $configs = $this->configHandler->gets($group); /** * @var \Xpressengine\Config\ConfigEntity $config */ foreach ($configs as $config) { (yield $config->get('id') => $this->getByConfig($config)); } }
/** * test get config * * @return void */ public function testGet() { $parent = m::mock('Xpressengine\\Config\\ConfigEntity'); $config1 = m::mock('Xpressengine\\Config\\ConfigEntity'); $conn = m::mock('Xpressengine\\Database\\VirtualConnectionInterface'); $configManager = m::mock('Xpressengine\\Config\\ConfigManager'); $configManager->shouldReceive('get')->with(sprintf('%s.%s.%s', ConfigHandler::CONFIG_NAME, 'group', 'id'))->andReturn($config1); $configManager->shouldReceive('get')->with(sprintf('%s.%s', ConfigHandler::CONFIG_NAME, 'group'))->andReturn($parent); $configManager->shouldReceive('get')->with(sprintf('%s.%s', ConfigHandler::CONFIG_NAME, 'group_null'))->andReturn(null); $configManager->shouldReceive('children')->andReturn([$config1]); $handler = new ConfigHandler($conn, $configManager); $this->assertInstanceOf('Xpressengine\\Config\\ConfigEntity', $handler->get('group', 'id')); $this->assertEquals(1, count($handler->gets('group'))); $this->assertEquals(0, count($handler->gets('group_null'))); }