/** * @dataProvider annotationDataProvider */ public function testChainableDecoratorAnnotation(array $parameters, array $expected) { $pageInfoProvider = $this->getMockBuilder('\\SMW\\PageInfo')->disableOriginalConstructor()->getMock(); $pageInfoProvider->expects($this->atLeastOnce())->method('getModificationDate')->will($this->returnValue($parameters['modificationDate'])); $semanticData = $this->semanticDataFactory->newEmptySemanticData(__METHOD__); $this->applicationFactory->registerObject('Settings', Settings::newFromArray($parameters['settings'])); $instance = new CategoryPropertyAnnotator(new NullPropertyAnnotator($semanticData), $parameters['categories']); $instance = new SortKeyPropertyAnnotator($instance, $parameters['sortkey']); $instance = new PredefinedPropertyAnnotator($instance, $pageInfoProvider); $instance->addAnnotation(); $this->semanticDataValidator->assertThatPropertiesAreSet($expected, $instance->getSemanticData()); }
/** * @dataProvider specialPropertiesDataProvider */ public function testAddSpecialProperties(array $parameters, array $expected) { $semanticData = $this->semanticDataFactory->setSubject($parameters['subject'])->newEmptySemanticData(); $pageInfo = $this->getMockBuilder('\\SMW\\PageInfo')->disableOriginalConstructor()->getMock(); foreach ($parameters['pageInfo'] as $method => $returnValue) { $pageInfo->expects($this->any())->method($method)->will($this->returnValue($returnValue)); } $this->applicationFactory->registerObject('Settings', Settings::newFromArray($parameters['settings'])); $instance = new PredefinedPropertyAnnotator(new NullPropertyAnnotator($semanticData), $pageInfo); $instance->addAnnotation(); $this->semanticDataValidator->assertThatPropertiesAreSet($expected, $instance->getSemanticData()); }