protected function setUp()
 {
     $bundle = new TestBundle();
     CumulativeResourceManager::getInstance()->clear()->setBundles([$bundle->getName() => get_class($bundle)]);
     $this->container = new ContainerBuilder();
     $this->container->setParameter('kernel.environment', 'test');
 }
 /**
  * {@inheritdoc}
  */
 public function isFresh($timestamp)
 {
     if ($this->isFreshTimestamp !== $timestamp) {
         $this->isFreshTimestamp = $timestamp;
         $this->isFresh = true;
         $bundles = CumulativeResourceManager::getInstance()->getBundles();
         $appRootDir = CumulativeResourceManager::getInstance()->getAppRootDir();
         foreach ($bundles as $bundleName => $bundleClass) {
             $reflection = new \ReflectionClass($bundleClass);
             $bundleDir = dirname($reflection->getFilename());
             $bundleAppDir = '';
             /**
              * This case needs for tests(without app root directory).
              */
             if (is_dir($appRootDir)) {
                 $bundleAppDir = $appRootDir . '/Resources/' . $bundleName;
             }
             /** @var CumulativeResourceLoader $loader */
             foreach ($this->resourceLoaders as $loader) {
                 if (!$loader->isResourceFresh($bundleClass, $bundleDir, $bundleAppDir, $this, $timestamp)) {
                     $this->isFresh = false;
                     break;
                 }
             }
             if (!$this->isFresh) {
                 break;
             }
         }
     }
     return $this->isFresh;
 }
 public function testGetAndSetBundles()
 {
     CumulativeResourceManager::getInstance()->clear();
     $this->assertCount(0, CumulativeResourceManager::getInstance()->getBundles());
     $bundle = new TestBundle1();
     CumulativeResourceManager::getInstance()->setBundles(['TestBundle1' => get_class($bundle)]);
     $this->assertEquals(['TestBundle1' => get_class($bundle)], CumulativeResourceManager::getInstance()->getBundles());
 }
 /**
  * @dataProvider loadDataProvider
  */
 public function testLoad(array $bundles, array $configs, array $expectedConfiguration)
 {
     $container = $this->getMock('Symfony\\Component\\DependencyInjection\\ContainerBuilder');
     CumulativeResourceManager::getInstance()->setBundles($bundles);
     $definition = $this->getMock('Symfony\\Component\\DependencyInjection\\Definition');
     $definition->expects($this->once())->method('replaceArgument')->with(0, $expectedConfiguration);
     $container->expects($this->once())->method('getDefinition')->with('oro_chart.config_provider')->will($this->returnValue($definition));
     $this->target->load($configs, $container);
 }
 protected function createEmptyConfiguration()
 {
     CumulativeResourceManager::getInstance()->clear();
     $this->configuration = new ContainerBuilder();
     $loader = new OroConfigExtension();
     $config = $this->getEmptyConfig();
     $loader->load(array($config), $this->configuration);
     $this->assertTrue($this->configuration instanceof ContainerBuilder);
 }
 /**
  * @dataProvider loadConfigurationDataProvider
  */
 public function testLoadConfiguration(array $configs, array $bundles, array $expectedConfiguration)
 {
     CumulativeResourceManager::getInstance()->clear()->setBundles($bundles);
     $container = new ContainerBuilder();
     $this->extension->load($configs, $container);
     $this->assertTrue($container->hasDefinition('oro_help.model.help_link_provider'));
     $linkProvider = $container->getDefinition('oro_help.model.help_link_provider');
     $this->assertContains($linkProvider->getMethodCalls()[1], array(array('setConfiguration', array($expectedConfiguration))));
 }
 /**
  * @dataProvider loadDataProvider
  */
 public function testLoad(array $configs, array $expectedBundles, array $expectedConfiguration)
 {
     CumulativeResourceManager::getInstance()->clear()->setBundles($expectedBundles);
     $extension = new OroAsseticExtension();
     $container = new ContainerBuilder();
     $container->setParameter('kernel.bundles', $expectedBundles);
     $extension->load($configs, $container);
     $this->assertEquals($expectedConfiguration, $container->getParameter('oro_assetic.raw_configuration'));
     $this->assertNotNull($container->getDefinition('oro_assetic.configuration'));
     $this->assertNotNull($container->getDefinition('oro_assetic.twig.extension'));
 }
 public function testIsFreshResource1ForBundle2IsNotUpToDate()
 {
     $bundle1 = new TestBundle1();
     $bundle2 = new TestBundle2();
     $resourceLoader1 = $this->getMock('Oro\\Component\\Config\\Loader\\CumulativeResourceLoader');
     $resourceLoader2 = $this->getMock('Oro\\Component\\Config\\Loader\\CumulativeResourceLoader');
     $resource = new CumulativeResource('test', new CumulativeResourceLoaderCollection([$resourceLoader1, $resourceLoader2]));
     $resourceLoader1->expects($this->exactly(2))->method('isResourceFresh')->will($this->onConsecutiveCalls(true, false));
     $resourceLoader2->expects($this->once())->method('isResourceFresh')->will($this->onConsecutiveCalls(true));
     CumulativeResourceManager::getInstance()->clear()->setBundles(['TestBundle1' => get_class($bundle1), 'TestBundle2' => get_class($bundle2)]);
     $this->assertFalse($resource->isFresh(100));
 }
 /**
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  */
 public function testLoad()
 {
     $bundle1 = new BarBundle();
     $bundle2 = new FooBundle();
     CumulativeResourceManager::getInstance()->clear()->setBundles([$bundle1->getName() => get_class($bundle1), $bundle2->getName() => get_class($bundle2)]);
     $container = new ContainerBuilder();
     $extensionConfig = [['placeholders' => ['test_block' => ['items' => ['item1' => ['remove' => true], 'item4' => ['order' => 15], 'item7' => ['order' => -5], 'new_empty_item' => ['order' => 100], 'new_item' => ['order' => 5]]]], 'placeholder_items' => ['new_item' => ['template' => 'test_template']]]];
     $extension = new OroUIExtension();
     $extension->load($extensionConfig, $container);
     $palaceholders = $container->getParameter('oro_ui.placeholders');
     $this->assertEquals(['placeholders' => ['test_block' => ['items' => ['item6', 'item7', 'item2', 'item3', 'new_item', 'item4', 'item5', 'new_empty_item']], 'test_merge_block' => ['items' => ['item1']], 'empty_block' => ['items' => []]], 'items' => ['item1' => ['template' => 'TestBundle::test.html.twig'], 'item2' => ['action' => 'TestBundle:Test:test2'], 'item3' => ['action' => 'TestBundle:Test:test3'], 'item4' => ['action' => 'TestBundle:Test:test4'], 'item5' => ['action' => 'TestBundle:Test:test5'], 'item6' => ['action' => 'TestBundle:Test:test6'], 'item7' => ['action' => 'TestBundle:Test:test7'], 'new_item' => ['template' => 'test_template']]], $palaceholders);
 }
 /**
  * @dataProvider loadDataProvider
  */
 public function testLoad(array $bundles, array $configs, array $expectedConfiguration)
 {
     $container = $this->getMock('Symfony\\Component\\DependencyInjection\\ContainerBuilder');
     CumulativeResourceManager::getInstance()->setBundles($bundles);
     $definition = $this->getMock('Symfony\\Component\\DependencyInjection\\Definition');
     $definition->expects($this->once())->method('replaceArgument')->with(0, $this->callback(function ($actualConfiguration) use($expectedConfiguration) {
         $this->assertSame($expectedConfiguration, $actualConfiguration);
         return true;
     }));
     $container->expects($this->once())->method('getDefinition')->will($this->returnValue($definition));
     $this->target->load($configs, $container);
 }
 /**
  * @dataProvider loadDataProvider
  */
 public function testLoad(array $configs, array $expectedThemeSettings)
 {
     $bundle1 = new Fixtures\FooBundle\FooBundle();
     $bundle2 = new Fixtures\BarBundle\BarBundle();
     CumulativeResourceManager::getInstance()->clear()->setBundles([$bundle1->getName() => get_class($bundle1), $bundle2->getName() => get_class($bundle2)]);
     $extension = new OroSidebarExtension();
     $container = new ContainerBuilder();
     $extension->load($configs, $container);
     $this->assertEquals($expectedThemeSettings, $container->getParameter(OroSidebarExtension::WIDGETS_SETTINGS_PARAMETER));
     $this->assertNotNull($container->getDefinition('oro_sidebar.widget_definition.registry'));
     $this->assertNotNull($container->getDefinition('oro_sidebar.twig.extension'));
 }
 public function testProcess()
 {
     $bundle1 = new TestBundle1();
     $bundle2 = new TestBundle2();
     CumulativeResourceManager::getInstance()->clear()->setBundles([$bundle1->getName() => get_class($bundle1), $bundle2->getName() => get_class($bundle2)]);
     $fieldTypeHelperDef = $this->getMockBuilder('Symfony\\Component\\DependencyInjection\\Definition')->disableOriginalConstructor()->getMock();
     $container = $this->getMock('Symfony\\Component\\DependencyInjection\\ContainerBuilder');
     $container->expects($this->once())->method('hasDefinition')->with(EntityExtendPass::FIELD_TYPE_HELPER_SERVICE_ID)->will($this->returnValue(true));
     $container->expects($this->once())->method('getDefinition')->with(EntityExtendPass::FIELD_TYPE_HELPER_SERVICE_ID)->will($this->returnValue($fieldTypeHelperDef));
     $fieldTypeHelperDef->expects($this->once())->method('replaceArgument')->with(0, ['enum' => 'manyToOne', 'multiEnum' => 'manyToMany']);
     $compiler = new EntityExtendPass();
     $compiler->process($container);
 }
 /**
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  */
 public function testLoadApiConfiguration()
 {
     $bundle1 = new Fixtures\BarBundle\BarBundle();
     $bundle2 = new Fixtures\BazBundle\BazBundle();
     $bundle3 = new Fixtures\FooBundle\FooBundle();
     CumulativeResourceManager::getInstance()->clear()->setBundles([$bundle1->getName() => get_class($bundle1), $bundle2->getName() => get_class($bundle2), $bundle3->getName() => get_class($bundle3)]);
     $extension = new OroApiExtension();
     $container = new ContainerBuilder();
     $extension->load([], $container);
     $this->assertNotNull($container->getDefinition('oro_api.config_bag'), 'Expected oro_api.config_bag service');
     $this->assertNotNull($container->getDefinition('oro_api.entity_exclusion_provider.config'), 'Expected oro_api.entity_exclusion_provider.config service');
     $this->assertEquals(['entities' => ['Test\\Entity1' => [], 'Test\\Entity2' => [], 'Test\\Entity3' => [], 'Test\\Entity4' => ['definition' => ['fields' => ['field1' => null, 'field2' => ['exclude' => true], 'field3' => ['exclude' => true]], 'filters' => ['fields' => ['field1' => null, 'field2' => ['data_type' => 'string', 'exclude' => true], 'field3' => ['exclude' => true]]], 'sorters' => ['fields' => ['field1' => null, 'field2' => ['exclude' => true]]]]], 'Test\\Entity5' => ['definition' => ['fields' => ['field1' => null]]], 'Test\\Entity6' => ['definition' => ['fields' => ['field1' => null]]], 'Test\\Entity10' => [], 'Test\\Entity11' => []]], $container->getDefinition('oro_api.config_bag')->getArgument(0));
     $this->assertEquals([['entity' => 'Test\\Entity1'], ['entity' => 'Test\\Entity2'], ['entity' => 'Test\\Entity3']], $container->getDefinition('oro_api.entity_exclusion_provider.config')->getArgument(1));
 }
 /**
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  */
 public function testLoad()
 {
     $bundle1 = new TestBundle1();
     $bundle2 = new TestBundle2();
     CumulativeResourceManager::getInstance()->clear()->setBundles([$bundle1->getName() => get_class($bundle1), $bundle2->getName() => get_class($bundle2)]);
     $container = new ContainerBuilder();
     $extensionConfig = [];
     $extension = new OroEntityExtension();
     $extension->load($extensionConfig, $container);
     $exclusions = $container->getParameter('oro_entity.exclusions');
     $this->assertEquals([['entity' => 'Test\\Entity\\Address', 'field' => 'regionText'], ['entity' => 'Test\\Entity\\Product', 'field' => 'code']], $exclusions);
     $virtualFields = $container->getParameter('oro_entity.virtual_fields');
     $this->assertEquals(['Test\\Entity\\Address' => ['region_name' => ['query' => ['select' => ['expr' => 'COALESCE(entity.regionText, region.name)', 'return_type' => 'string'], 'join' => ['left' => [['join' => 'entity.region', 'alias' => 'region']]]]]], 'Test\\Entity\\Product' => ['groups' => ['query' => ['select' => ['expr' => 'target.name', 'return_type' => 'enum', 'filter_by_id' => true, 'label' => 'test.product.groups.label'], 'join' => ['left' => [['join' => 'entity.groups', 'alias' => 'target']]]]]]], $virtualFields);
 }
 /**
  * Adds a resource objects to the container.
  * These objects will be used to monitor whether resources are up-to-date or not.
  *
  * @param ContainerBuilder $container
  * @throws \RuntimeException if the container builder was not specified
  */
 public function registerResources(ContainerBuilder $container)
 {
     $bundles = CumulativeResourceManager::getInstance()->getBundles();
     $resource = new CumulativeResource($this->name, $this->resourceLoaders);
     /** @var CumulativeResourceLoader $resourceLoader */
     foreach ($this->resourceLoaders as $resourceLoader) {
         foreach ($bundles as $bundleClass) {
             $reflection = new \ReflectionClass($bundleClass);
             $bundleDir = dirname($reflection->getFilename());
             $resourceLoader->registerFoundResource($bundleClass, $bundleDir, $resource);
         }
     }
     $container->addResource($resource);
 }
 public function testProcess()
 {
     $bundle = new TestBundle();
     $bundles = array($bundle->getName() => get_class($bundle));
     CumulativeResourceManager::getInstance()->clear()->setBundles($bundles);
     $this->container->expects($this->once())->method('getExtensions')->will($this->returnValue(['test_bundle' => null]));
     $this->container->expects($this->once())->method('getExtensionConfig')->with('test_bundle')->will($this->returnValue([['settings' => [SettingsBuilder::RESOLVED_KEY => true, 'some_field' => ['value' => 'some_val', 'scope' => 'app'], 'some_another_field' => ['value' => 'some_another_val', 'scope' => 'app']]]]));
     $bagServiceDef = $this->getMockBuilder('Symfony\\Component\\DependencyInjection\\Definition')->disableOriginalConstructor()->getMock();
     $providerServiceDef = $this->getMockBuilder('Symfony\\Component\\DependencyInjection\\Definition')->disableOriginalConstructor()->getMock();
     $this->container->expects($this->once())->method('findTaggedServiceIds')->with(SystemConfigurationPass::CONFIG_PROVIDER_TAG_NAME)->will($this->returnValue(['provider_service' => [['scope' => 'app']]]));
     $this->container->expects($this->exactly(2))->method('getDefinition')->will($this->returnValueMap([[SystemConfigurationPass::CONFIG_DEFINITION_BAG_SERVICE, $bagServiceDef], ['provider_service', $providerServiceDef]]));
     $bagServiceDef->expects($this->once())->method('replaceArgument')->with($this->equalTo(0), $this->isType('array'));
     $providerServiceDef->expects($this->once())->method('replaceArgument')->with($this->equalTo(0), $this->isType('array'));
     $this->compiler->process($this->container);
 }
 public function testLoad()
 {
     CumulativeResourceManager::getInstance()->clear();
     $extension = new OroAttachmentExtension();
     $configs = array();
     $isCalled = false;
     $container = $this->getMock('Symfony\\Component\\DependencyInjection\\ContainerBuilder');
     $container->expects($this->any())->method('setParameter')->will($this->returnCallback(function ($name, $value) use(&$isCalled) {
         if ($name == 'oro_attachment.files' && is_array($value)) {
             $isCalled = true;
         }
     }));
     $extension->load($configs, $container);
     $this->assertTrue($isCalled);
 }
 /**
  * Adds a resource objects to the container.
  * These objects will be used to monitor whether resources are up-to-date or not.
  *
  * @param ContainerBuilder $container
  *
  * @throws \RuntimeException if the container builder was not specified
  */
 public function registerResources(ContainerBuilder $container)
 {
     $bundles = CumulativeResourceManager::getInstance()->getBundles();
     $appRootDir = CumulativeResourceManager::getInstance()->getAppRootDir();
     $resource = new CumulativeResource($this->name, $this->resourceLoaders);
     /** @var CumulativeResourceLoader $resourceLoader */
     foreach ($this->resourceLoaders as $resourceLoader) {
         foreach ($bundles as $bundleName => $bundleClass) {
             $reflection = new \ReflectionClass($bundleClass);
             $bundleDir = dirname($reflection->getFilename());
             $bundleAppDir = !empty($appRootDir) && is_dir($appRootDir) ? $appRootDir . '/Resources/' . $bundleName : '';
             // this case needs for tests (without app root directory)
             $resourceLoader->registerFoundResource($bundleClass, $bundleDir, $bundleAppDir, $resource);
         }
     }
     $container->addResource($resource);
 }
Beispiel #19
0
 public function testProcess()
 {
     $expected = ['entity_data' => [['name' => 'OroCRM\\Bundle\\TestBundle1\\Entity\\Entity1', 'dependent' => ['OroCRM\\Bundle\\TestBundle1\\Entity\\Entity1Status', 'OroCRM\\Bundle\\TestBundle1\\Entity\\Entity1Reason'], 'dependencies' => ['OroCRM\\Bundle\\TestBundle1\\Entity\\Entity2', 'OroCRM\\Bundle\\TestBundle1\\Entity\\Entity3'], 'dependencies_condition' => 'OR', 'navigation_items' => ['application_menu.menu1.list'], 'belongs_to' => ['integration' => 'testIntegrationType']], ['name' => 'OroCRM\\Bundle\\TestBundle2\\Entity\\Entity', 'dependent' => ['OroCRM\\Bundle\\TestBundle2\\Entity\\EntityContact'], 'navigation_items' => ['application_menu.activities_tab.contact'], 'dependencies' => [], 'dependencies_condition' => 'AND']], 'channel_types' => ['test1' => ['label' => 'test1 type', 'entities' => ['OroCRM\\Bundle\\TestBundle1\\Entity\\Entity1', 'OroCRM\\Bundle\\TestBundle1\\Entity\\Entity2', 'OroCRM\\Bundle\\TestBundle1\\Entity\\Entity3'], 'integration_type' => 'test', 'customer_identity' => 'OroCRM\\Bundle\\TestBundle1\\Entity\\TestCustomer'], 'test2' => ['label' => 'test2 type', 'entities' => [], 'customer_identity' => 'OroCRM\\Bundle\\ChannelBundle\\Entity\\CustomerIdentity']]];
     $bundle1 = new TestBundle1();
     $bundle2 = new TestBundle2();
     CumulativeResourceManager::getInstance()->clear()->setBundles([$bundle1->getName() => get_class($bundle1), $bundle2->getName() => get_class($bundle2)]);
     $settingsProviderDef = $this->getMockBuilder('Symfony\\Component\\DependencyInjection\\Definition')->disableOriginalConstructor()->getMock();
     $result = null;
     $container = $this->getMock('Symfony\\Component\\DependencyInjection\\ContainerBuilder');
     $container->expects($this->once())->method('getDefinition')->with(SettingsPass::SETTINGS_PROVIDER_ID)->will($this->returnValue($settingsProviderDef));
     $settingsProviderDef->expects($this->once())->method('replaceArgument')->will($this->returnCallback(function ($index, $argument) use(&$result) {
         $result = $argument;
     }));
     $compiler = new SettingsPass();
     $compiler->process($container);
     $this->assertEquals($expected, $result);
 }
 public function testProcess()
 {
     $expected = ['form' => ['synchronization_settings' => ['schedule' => ['type' => 'schedule_form_type', 'applicable' => ['@test.client->test()'], 'options' => []], 'enabled' => ['type' => 'choice', 'options' => ['choices' => ['Enabled', 'Disabled']], 'priority' => -200, 'applicable' => []], 'some_setting' => ['type' => 'choice', 'applicable' => ['simple'], 'options' => []]]]];
     $bundle1 = new TestBundle1();
     $bundle2 = new TestBundle2();
     CumulativeResourceManager::getInstance()->clear()->setBundles([$bundle1->getName() => get_class($bundle1), $bundle2->getName() => get_class($bundle2)]);
     $settingsProviderDef = $this->getMockBuilder('Symfony\\Component\\DependencyInjection\\Definition')->disableOriginalConstructor()->getMock();
     $result = null;
     $container = $this->getMock('Symfony\\Component\\DependencyInjection\\ContainerBuilder');
     $container->expects($this->once())->method('getDefinition')->with(SettingsPass::SETTINGS_PROVIDER_ID)->will($this->returnValue($settingsProviderDef));
     $settingsProviderDef->expects($this->once())->method('replaceArgument')->will($this->returnCallback(function ($index, $argument) use(&$result) {
         $result = $argument;
     }));
     $compiler = new SettingsPass();
     $compiler->process($container);
     $this->assertEquals($expected, $result);
 }
 /**
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  */
 public function testProcess()
 {
     $bundle1 = new TestBundle1();
     $bundle2 = new TestBundle2();
     CumulativeResourceManager::getInstance()->clear()->setBundles([$bundle1->getName() => get_class($bundle1), $bundle2->getName() => get_class($bundle2)]);
     $managerDef = $this->getMockBuilder('Symfony\\Component\\DependencyInjection\\Definition')->disableOriginalConstructor()->getMock();
     $result = null;
     $container = $this->getMock('Symfony\\Component\\DependencyInjection\\ContainerBuilder');
     $container->expects($this->once())->method('hasDefinition')->with(ConfigurationPass::MANAGER_SERVICE_ID)->will($this->returnValue(true));
     $container->expects($this->once())->method('getDefinition')->with(ConfigurationPass::MANAGER_SERVICE_ID)->will($this->returnValue($managerDef));
     $container->expects($this->once())->method('findTaggedServiceIds')->with(ConfigurationPass::TAG_NAME)->will($this->returnValue(['string_filter' => [['type' => 'string']], 'integer_filter' => [['type' => 'integer']], 'number_filter' => [['type' => 'number']], 'boolean_filter' => [['type' => 'boolean']]]));
     $managerDef->expects($this->once())->method('replaceArgument')->will($this->returnCallback(function ($index, $argument) use(&$result) {
         $result = $argument;
     }));
     $compiler = new ConfigurationPass();
     $compiler->process($container);
     $expected = ['filters' => ['filter1' => ['applicable' => [['type' => 'string'], ['type' => 'text']], 'type' => 'string', 'template_theme' => 'embedded', 'query_type' => ['all']], 'filter2' => ['applicable' => [['entity' => 'TestEntity', 'field' => 'TestField']], 'type' => 'string', 'template_theme' => 'embedded', 'query_type' => ['all']], 'filter3' => ['applicable' => [['type' => 'integer']], 'type' => 'number', 'template_theme' => 'embedded', 'query_type' => ['all']], 'filter4' => ['applicable' => [['type' => 'boolean']], 'type' => 'boolean', 'template_theme' => 'embedded', 'query_type' => ['type1', 'type2']], 'filter5' => ['applicable' => [['type' => 'other']], 'type' => 'string', 'options' => ['option1' => true, 'option2' => 'val2'], 'init_module' => 'module1', 'template_theme' => 'embedded', 'query_type' => ['all']]], 'grouping' => ['exclude' => [['type' => 'text'], ['type' => 'array']]], 'converters' => ['converter1' => ['applicable' => [['type' => 'string'], ['type' => 'text']], 'functions' => [['name' => 'Func1', 'expr' => 'FUNC1($column)', 'return_type' => 'string', 'name_label' => 'oro.query_designer.converters.converter1.Func1.name', 'hint_label' => 'oro.query_designer.converters.converter1.Func1.hint'], ['name' => 'Func2', 'expr' => 'FUNC2($column)', 'name_label' => 'oro.query_designer.converters.converter1.Func2.name', 'hint_label' => 'oro.query_designer.converters.converter1.Func2.hint']], 'query_type' => ['type1']]], 'aggregates' => ['aggregate1' => ['applicable' => [['type' => 'integer'], ['type' => 'smallint'], ['type' => 'float']], 'functions' => [['name' => 'Min', 'expr' => 'MIN($column)', 'name_label' => 'oro.query_designer.aggregates.aggregate1.Min.name', 'hint_label' => 'oro.query_designer.aggregates.aggregate1.Min.hint'], ['name' => 'Max', 'expr' => 'MAX($column)', 'name_label' => 'oro.query_designer.aggregates.aggregate1.Max.name', 'hint_label' => 'oro.query_designer.aggregates.aggregate1.Max.hint'], ['name' => 'Count', 'expr' => 'COUNT($column)', 'return_type' => 'integer', 'name_label' => 'oro.query_designer.aggregates.aggregate1.Count.name', 'hint_label' => 'oro.query_designer.aggregates.aggregate1.Count.hint']], 'query_type' => ['type1']]]];
     $this->assertEquals($expected, $result);
 }
Beispiel #22
0
 /**
  * Get the list of all "autoregistered" bundles
  *
  * @return array List ob bundle objects
  */
 public function registerBundles()
 {
     // clear state of CumulativeResourceManager
     CumulativeResourceManager::getInstance()->clear();
     $bundles = array();
     if (!$this->getCacheDir()) {
         foreach ($this->collectBundles() as $class => $params) {
             $bundles[] = $params['kernel'] ? new $class($this) : new $class();
         }
     } else {
         $file = $this->getCacheDir() . '/bundles.php';
         $cache = new ConfigCache($file, false);
         if (!$cache->isFresh($file)) {
             $dumper = new PhpBundlesDumper($this->collectBundles());
             $cache->write($dumper->dump());
         }
         // require instead of require_once used to correctly handle sub-requests
         $bundles = (require $cache);
     }
     return $bundles;
 }
 /**
  * @dataProvider loadDataProvider
  */
 public function testLoad(array $configs, array $expectedThemeSettings, $expectedActiveTheme)
 {
     $bundle1 = new Fixtures\FooBundle\FooBundle();
     $bundle2 = new Fixtures\BarBundle\BarBundle();
     CumulativeResourceManager::getInstance()->clear()->setBundles([$bundle1->getName() => get_class($bundle1), $bundle2->getName() => get_class($bundle2)]);
     $extension = new OroThemeExtension();
     $container = new ContainerBuilder();
     $extension->load($configs, $container);
     $registryDefinition = $container->getDefinition('oro_theme.registry');
     $this->assertEquals('%oro_theme.registry.class%', $registryDefinition->getClass());
     $this->assertEquals($expectedThemeSettings, $container->getParameter('oro_theme.settings'));
     $registryDefinitionMethodCalls = $registryDefinition->getMethodCalls();
     if ($expectedActiveTheme) {
         $this->assertCount(1, $registryDefinitionMethodCalls);
         $this->assertEquals(array('setActiveTheme', array($expectedActiveTheme)), $registryDefinitionMethodCalls[0]);
     } else {
         $this->assertCount(0, $registryDefinitionMethodCalls);
     }
     $this->assertNotNull($container->getDefinition('oro_theme.registry'));
     $this->assertNotNull($container->getDefinition('oro_theme.twig.extension'));
 }
 /**
  * @dataProvider loadConfigurationDataProvider
  */
 public function testLoadConfiguration(array $configs, array $bundles, array $expectedMenu, array $expectedTitles)
 {
     CumulativeResourceManager::getInstance()->clear()->setBundles($bundles);
     $container = new ContainerBuilder();
     $this->extension->load($configs, $container);
     $this->assertTrue($container->hasDefinition('oro_menu.configuration_builder'));
     $menuBuilder = $container->getDefinition('oro_menu.configuration_builder');
     $data = $menuBuilder->getMethodCalls();
     $this->assertEquals(array(array('setConfiguration', array($expectedMenu))), $data, 'Unexpected menu for builder');
     $this->assertTrue($container->hasDefinition('oro_menu.twig.extension'));
     $menuBuilder = $container->getDefinition('oro_menu.twig.extension');
     $data = $menuBuilder->getMethodCalls();
     $this->assertEquals(array(array('setMenuConfiguration', array($expectedMenu))), $data, 'Unexpected menu for twig');
     $this->assertTrue($container->hasDefinition('oro_navigation.title_config_reader'));
     $configReader = $container->getDefinition('oro_navigation.title_config_reader');
     $data = $configReader->getMethodCalls();
     $this->assertEquals(array(array('setConfigData', array($expectedTitles))), $data);
     $this->assertTrue($container->hasDefinition('oro_navigation.title_provider'));
     $titleService = $container->getDefinition('oro_navigation.title_provider');
     $data = $titleService->getMethodCalls();
     $this->assertEquals(array(array('setTitles', array($expectedTitles))), $data);
 }
 /**
  * {@inheritdoc}
  */
 public function isFresh($timestamp)
 {
     if ($this->isFreshTimestamp !== $timestamp) {
         $this->isFreshTimestamp = $timestamp;
         $this->isFresh = true;
         $bundles = CumulativeResourceManager::getInstance()->getBundles();
         foreach ($bundles as $bundleClass) {
             $reflection = new \ReflectionClass($bundleClass);
             $bundleDir = dirname($reflection->getFilename());
             /** @var CumulativeResourceLoader $loader */
             foreach ($this->resourceLoaders as $loader) {
                 if (!$loader->isResourceFresh($bundleClass, $bundleDir, $this, $timestamp)) {
                     $this->isFresh = false;
                     break;
                 }
             }
             if (!$this->isFresh) {
                 break;
             }
         }
     }
     return $this->isFresh;
 }
 public function testLoadingLayoutUpdates()
 {
     $container = new ContainerBuilder();
     $bundle1 = new TestBundle();
     $bundle2 = new TestBundle2();
     CumulativeResourceManager::getInstance()->clear()->setBundles([$bundle1->getName() => get_class($bundle1), $bundle2->getName() => get_class($bundle2)]);
     $bundle1Dir = dirname((new \ReflectionClass($bundle1))->getFileName());
     $bundle2Dir = dirname((new \ReflectionClass($bundle2))->getFileName());
     $extension = new OroLayoutExtension();
     $extension->load([], $container);
     $expectedResult = ['base' => ['route_name' => [str_replace('/', DIRECTORY_SEPARATOR, $bundle1Dir . '/Resources/views/layouts/base/route_name/update1.yml'), str_replace('/', DIRECTORY_SEPARATOR, $bundle2Dir . '/Resources/views/layouts/base/route_name/update1.yml'), str_replace('/', DIRECTORY_SEPARATOR, $bundle2Dir . '/Resources/views/layouts/base/route_name/update2.yml')], 'route_name2' => [str_replace('/', DIRECTORY_SEPARATOR, $bundle1Dir . '/Resources/views/layouts/base/route_name2/update1.yml'), str_replace('/', DIRECTORY_SEPARATOR, $bundle2Dir . '/Resources/views/layouts/base/route_name2/update1.yml')]], 'black' => ['route_name' => [str_replace('/', DIRECTORY_SEPARATOR, $bundle2Dir . '/Resources/views/layouts/black/route_name/update1.php')]]];
     $updateResources = $container->getParameter('oro_layout.theme_updates_resources');
     $this->normalizeResources($updateResources);
     $this->normalizeResources($expectedResult);
     $this->assertEquals($expectedResult, $updateResources);
 }
 public function testLoaders()
 {
     $bundle = new TestBundle();
     CumulativeResourceManager::getInstance()->clear()->setBundles([$bundle->getName() => get_class($bundle)]);
     $storage = new AclAnnotationStorage();
     $annotationLoader = new AclAnnotationLoader(new AnnotationReader());
     $annotationLoader->load($storage);
     $configLoader = new AclConfigLoader();
     $configLoader->load($storage);
     $a = $storage->findById('user_test_main_controller');
     $this->assertNotNull($a);
     $this->assertEquals('user_test_main_controller', $a->getId());
     $this->assertEquals('action', $a->getType());
     $this->assertEquals('', $a->getPermission());
     $this->assertEquals('Test Group', $a->getGroup());
     $this->assertEquals('Test controller for ACL', $a->getLabel());
     $a = $storage->find('Oro\\Bundle\\SecurityBundle\\Tests\\Unit\\Annotation\\Fixtures\\Controller\\Classes\\MainTestController');
     $this->assertNotNull($a);
     $this->assertEquals('user_test_main_controller', $a->getId());
     $a = $storage->findById('user_test_main_controller_action1');
     $this->assertNotNull($a);
     $this->assertEquals('user_test_main_controller_action1', $a->getId());
     $this->assertEquals('entity', $a->getType());
     $this->assertEquals('AcmeBundle\\Entity\\SomeClass', $a->getClass());
     $this->assertEquals('VIEW', $a->getPermission());
     $this->assertEquals('Test Group', $a->getGroup());
     $this->assertEquals('Action 1', $a->getLabel());
     $a = $storage->find('Oro\\Bundle\\SecurityBundle\\Tests\\Unit\\Annotation\\Fixtures\\Controller\\Classes\\MainTestController', 'test1Action');
     $this->assertNotNull($a);
     $this->assertEquals('user_test_main_controller_action1', $a->getId());
     $a = $storage->findById('user_test_main_controller_action2');
     $this->assertNotNull($a);
     $this->assertEquals('user_test_main_controller_action2', $a->getId());
     $this->assertEquals('action', $a->getType());
     $this->assertEquals('', $a->getPermission());
     $this->assertEquals('Another Group', $a->getGroup());
     $this->assertEquals('Action 2', $a->getLabel());
     $a = $storage->find('Oro\\Bundle\\SecurityBundle\\Tests\\Unit\\Annotation\\Fixtures\\Controller\\Classes\\MainTestController', 'test2Action');
     $this->assertEquals('user_test_main_controller_action2', $a->getId());
     $a = $storage->find('Oro\\Bundle\\SecurityBundle\\Tests\\Unit\\Annotation\\Fixtures\\Controller\\Classes\\MainTestController', 'test3Action');
     $this->assertNotNull($a);
     $this->assertEquals('user_test_main_controller_action2', $a->getId());
     $a = $storage->findById('test_controller');
     $this->assertNotNull($a);
     $this->assertEquals('test_controller', $a->getId());
     $this->assertEquals('entity', $a->getType());
     $this->assertEquals('AcmeBundle\\Entity\\SomeEntity', $a->getClass());
     $this->assertEquals('VIEW', $a->getPermission());
     $this->assertEquals('Test Group', $a->getGroup());
     $this->assertEquals('Test controller', $a->getLabel());
     $a = $storage->find('Oro\\Bundle\\SecurityBundle\\Tests\\Unit\\Annotation\\Fixtures\\Controller\\Classes\\ConfigController', 'testAction');
     $this->assertNotNull($a);
     $this->assertEquals('test_controller', $a->getId());
     $a = $storage->findById('test_wo_bindings');
     $this->assertNotNull($a);
     $this->assertEquals('test_wo_bindings', $a->getId());
     $this->assertEquals('action', $a->getType());
     $this->assertEquals('', $a->getPermission());
     $this->assertEquals('Another Group', $a->getGroup());
     $this->assertEquals('Test without bindings', $a->getLabel());
     $this->assertCount(5, $storage->getAnnotations());
     $this->assertCount(2, $storage->getAnnotations('entity'));
     $this->assertCount(3, $storage->getAnnotations('action'));
 }
 public function testLoadWhenResourceLoaderReturnsArray()
 {
     $bundle1 = new TestBundle1();
     $bundle1Dir = dirname((new \ReflectionClass($bundle1))->getFileName());
     $bundle2 = new TestBundle2();
     $bundle2Dir = dirname((new \ReflectionClass($bundle2))->getFileName());
     $resourceLoader = $this->getMock('Oro\\Component\\Config\\Loader\\CumulativeResourceLoader');
     $resource1 = new CumulativeResourceInfo(get_class($bundle1), 'res1', 'res1', []);
     $resource2 = new CumulativeResourceInfo(get_class($bundle1), 'res2', 'res2', []);
     $resourceLoader->expects($this->at(0))->method('load')->with(get_class($bundle1), $bundle1Dir)->will($this->returnValue([$resource1, $resource2]));
     $resource3 = new CumulativeResourceInfo(get_class($bundle2), 'res3', 'res3', []);
     $resourceLoader->expects($this->at(1))->method('load')->with(get_class($bundle2), $bundle2Dir)->will($this->returnValue($resource3));
     CumulativeResourceManager::getInstance()->clear()->setBundles(['TestBundle1' => get_class($bundle1), 'TestBundle2' => get_class($bundle2)]);
     $loader = new CumulativeConfigLoader('test', $resourceLoader);
     $result = $loader->load();
     $this->assertEquals([$resource1, $resource2, $resource3], $result);
 }