/** * @depends testDefaultClassImplementationIsCreatedWhenThereIsNoDefinedClassTypeImplementation */ public function testDefaultClassImplementationIsCreatedBasedOnGlobalClassTypeImplementation() { $this->globalClassOptions->setAccessorsEnabled(true)->setAccessorsStyle(new CamelCaseStyle()); $this->classMap->registerClass('helicopter', 'ConcreteXylophone'); $implementation = new ClassTypeImplementation('helicopter'); $implementation->setClassName('ConcreteXylophone')->setAccessorsEnabled(true)->setAccessorsStyle(new CamelCaseStyle()); $this->assertEquals($implementation, $this->object->getClassTypeImplementation('helicopter')); }
public function testBuild() { $this->object->load('implementation.yml'); $classMap = new ClassMap(); $classMap->registerNamespace('Wookieb\\ZorroDataSchema\\Tests\\Resources\\Implementation\\Entity')->registerNamespace('Wookieb\\ZorroDataSchema\\Tests\\Resources\\Implementation\\SecondEntity'); $globalOptions = new GlobalClassTypeImplementation(); $globalOptions->setAccessorsStyle(new CamelCaseStyle())->setAccessorsEnabled(true); $implementation = new BasicImplementation($classMap, $globalOptions); $implementation->registerClassTypeImplementation($this->classImplementation('User')->setAccessorsEnabled(false)->setAccessorsStyle(new CamelCaseStyle())->addPropertyImplementation($this->propertyImplementation('name')->setSetter('setLogin'))->addPropertyImplementation($this->propertyImplementation('lastname')->setTargetPropertyName('surname'))->addPropertyImplementation($this->propertyImplementation('nickname')->setGetter('getNick'))->setAccessorsEnabled(false))->registerClassTypeImplementation($this->classImplementation('Admin')->setAccessorsEnabled(true)->setAccessorsStyle(new UnderscoreStyle())->setClassName('Wookieb\\ZorroDataSchema\\Tests\\Resources\\Implementation\\Admin')->addPropertyImplementation($this->propertyImplementation('masterOfDisaster')->setTargetPropertyName('yesHeIs')->setSetter('set_yes_he_is')->setGetter('get_yes_he_is')))->registerClassTypeImplementation($this->classImplementation('SuperUser')->setAccessorsEnabled(true)->setAccessorsStyle(new CamelCaseStyle())->addPropertyImplementation($this->propertyImplementation('position')->setSetter('setPositionName')->setGetter('getPosition'))->addPropertyImplementation($this->propertyImplementation('platform')->setGetter('getSuperUserPlatform')->setSetter('setPlatform'))->addPropertyImplementation($this->propertyImplementation('system')->setSetter('setOperatingSystem')->setGetter('getOperatingSystem')->setTargetPropertyName('operatingSystem'))); $this->assertEquals($implementation, $this->object->build()); $expectedResources = array(new FileResource(TESTS_DIRECTORY . '/Resources/Implementation/implementation.yml'), new FileResource(TESTS_DIRECTORY . '/Resources/Implementation/second_implementation.yml')); $this->assertEquals($expectedResources, $this->object->getResources()); }
public function getClassTypeImplementation($name) { if (isset($this->classImplementations[$name])) { $classOptions = $this->classImplementations[$name]; } else { $classOptions = new ClassTypeImplementation($name); if ($this->globalClassOptions->getAccessorsStyle()) { $classOptions->setAccessorsStyle($this->globalClassOptions->getAccessorsStyle()); } $classOptions->setAccessorsEnabled($this->globalClassOptions->isAccessorsEnabled()); } if (!$classOptions->getClassName()) { $classOptions->setClassName($this->classMap->getClass($name)); } return $classOptions; }
public function testDisablingAccessors() { $this->assertMethodChaining($this->object->setAccessorsEnabled(false), 'setAccessorsEnabled'); $this->assertFalse($this->object->isAccessorsEnabled()); }