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); }
/** * 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)); }
/** * 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); }); }
/** * @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()); } }
public function testRedirectToNullWithoutFallback() { $redirectUrl = $this->redirect->to(null); $this->assertEquals($this->routerMock->generate('homepage'), $redirectUrl); }