public function testGenerate()
 {
     $schema = ['relationData' => [['field_id' => new FieldConfigId('extend', 'Test\\Entity', ExtendHelper::buildAssociationName('Test\\TargetEntity1', self::ASSOCIATION_KIND), 'manyToOne'), 'target_entity' => 'Test\\TargetEntity1'], ['field_id' => new FieldConfigId('extend', 'Test\\Entity', ExtendHelper::buildAssociationName('Test\\TargetEntity2', self::ASSOCIATION_KIND), 'manyToOne'), 'target_entity' => 'Test\\TargetEntity2'], ['field_id' => new FieldConfigId('extend', 'Test\\Entity', ExtendHelper::buildAssociationName('Test\\TargetEntity3', self::ASSOCIATION_KIND), 'manyToMany'), 'target_entity' => 'Test\\TargetEntity3'], ['field_id' => new FieldConfigId('extend', 'Test\\Entity', 'testField', 'manyToOne'), 'target_entity' => 'Test\\TargetEntity4']]];
     $class = PhpClass::create('Test\\Entity');
     $this->extension->generate($schema, $class);
     $strategy = new DefaultGeneratorStrategy();
     $classBody = $strategy->generate($class);
     $expectedBody = file_get_contents(__DIR__ . '/../Fixtures/multiple_many_to_one_association.txt');
     $this->assertEquals(trim($expectedBody), $classBody);
 }
Example #2
0
 /**
  * test generate with a missing template in the chosen template.
  * ensure fallback to default works.
  *
  * @return void
  */
 public function testGenerateWithTemplateFallbacks()
 {
     $this->_loadTestPlugin('TestBakeTheme');
     $this->Task->params['theme'] = 'TestBakeTheme';
     $this->Task->set(['name' => 'Articles', 'table' => 'articles', 'import' => false, 'records' => false, 'schema' => '', 'namespace' => '']);
     $result = $this->Task->generate('tests/fixture');
     $this->assertSameAsFile(__FUNCTION__ . '.ctp', $result);
 }
 /**
  * @dataProvider generateProvider
  */
 public function testGenerateWithSiteAccessNoReverseMatch($urlResource, array $parameters, $referenceType)
 {
     $matcher = $this->getMock('eZ\\Publish\\Core\\MVC\\Symfony\\SiteAccess\\URILexer');
     $this->generator->setSiteAccess(new SiteAccess('test', 'test', $matcher));
     $baseUrl = '/base/url';
     $requestContext = new RequestContext($baseUrl);
     $this->generator->setRequestContext($requestContext);
     $uri = '/some/thing';
     $this->generator->expects($this->once())->method('doGenerate')->with($urlResource, $parameters)->will($this->returnValue($uri));
     $fullUri = $baseUrl . $uri;
     $matcher->expects($this->once())->method('analyseLink')->with($uri)->will($this->returnValue($uri));
     if ($referenceType === UrlGeneratorInterface::ABSOLUTE_URL) {
         $fullUri = $requestContext->getScheme() . '://' . $requestContext->getHost() . $baseUrl . $uri;
     }
     $siteAccessName = 'fake';
     $this->siteAccessRouter->expects($this->once())->method('matchByName')->with($siteAccessName)->will($this->returnValue(null));
     $this->logger->expects($this->once())->method('notice');
     $this->assertSame($fullUri, $this->generator->generate($urlResource, $parameters + array('siteaccess' => $siteAccessName), $referenceType));
 }
Example #4
0
 /**
  * Sets up the unrouted url assembler and the link generator.
  */
 protected function setUpUrlIntegrationServices()
 {
     $this->pathProcessor = $this->getMock('Drupal\\Core\\PathProcessor\\OutboundPathProcessorInterface');
     $this->unroutedUrlAssembler = new UnroutedUrlAssembler($this->requestStack, $this->pathProcessor);
     \Drupal::getContainer()->set('unrouted_url_assembler', $this->unroutedUrlAssembler);
     $this->linkGenerator = new LinkGenerator($this->urlGenerator, $this->getMock('Drupal\\Core\\Extension\\ModuleHandlerInterface'), $this->renderer);
     $this->renderer->method('render')->willReturnCallback(function (&$elements, $is_root_call = FALSE) {
         // Mock the ability to theme links
         $link = $this->linkGenerator->generate($elements['#title'], $elements['#url']);
         if (isset($elements['#prefix'])) {
             $link = $elements['#prefix'] . $link;
         }
         if (isset($elements['#suffix'])) {
             $link = $link . $elements['#suffix'];
         }
         return Markup::create($link);
     });
 }
Example #5
0
 /**
  * @param array $errors
  * @param bool $isGeneration
  * @param bool $classExistsFirst
  * @param bool $classExistsSecond
  * @param bool $makeGeneration
  * @param bool $makeResultFile
  * @param bool $fileExists
  * @param bool $isValid
  *
  * @dataProvider generateDataProvider
  * @covers \Magento\Framework\Code\Generator\EntityAbstract::generate
  * @covers \Magento\Framework\Code\Generator\EntityAbstract::getErrors
  * @covers \Magento\Framework\Code\Generator\EntityAbstract::_getSourceClassName
  * @covers \Magento\Framework\Code\Generator\EntityAbstract::_getResultClassName
  * @covers \Magento\Framework\Code\Generator\EntityAbstract::_getDefaultResultClassName
  * @covers \Magento\Framework\Code\Generator\EntityAbstract::_generateCode
  * @covers \Magento\Framework\Code\Generator\EntityAbstract::_addError
  * @covers \Magento\Framework\Code\Generator\EntityAbstract::_validateData
  * @covers \Magento\Framework\Code\Generator\EntityAbstract::_getClassDocBlock
  * @covers \Magento\Framework\Code\Generator\EntityAbstract::_getGeneratedCode
  * @covers \Magento\Framework\Code\Generator\EntityAbstract::_fixCodeStyle
  */
 public function testGenerate($errors = array(), $isGeneration = true, $classExistsFirst = true, $classExistsSecond = false, $makeGeneration = true, $makeResultFile = true, $fileExists = false, $isValid = true)
 {
     if ($isGeneration) {
         $arguments = $this->_prepareMocksForGenerateCode($isValid);
     } else {
         $arguments = $this->_prepareMocksForValidateData($classExistsFirst, $classExistsSecond, $makeGeneration, $makeResultFile, $fileExists);
     }
     $abstractGetters = array('_getClassProperties', '_getClassMethods');
     $this->_model = $this->getMockForAbstractClass('Magento\\Framework\\Code\\Generator\\EntityAbstract', $arguments, '', true, true, true, $abstractGetters);
     // we need to mock abstract methods to set correct return value type
     foreach ($abstractGetters as $methodName) {
         $this->_model->expects($this->any())->method($methodName)->will($this->returnValue(array()));
     }
     $result = $this->_model->generate();
     if ($errors) {
         $this->assertFalse($result);
         $this->assertEquals($errors, $this->_model->getErrors());
     } else {
         $this->assertTrue($result);
         $this->assertEmpty($this->_model->getErrors());
     }
 }
Example #6
0
 public function testRedirectToNullWithoutFallback()
 {
     $redirectUrl = $this->redirect->to(null);
     $this->assertEquals($this->routerMock->generate('homepage'), $redirectUrl);
 }