public function testPrioritizeDispatchableDataValueFormatter() { $dataValueFormatter = $this->getMockBuilder('\\SMW\\DataValues\\ValueFormatters\\DataValueFormatter')->disableOriginalConstructor()->getMockForAbstractClass(); $dataValueFormatter->expects($this->once())->method('isFormatterFor')->will($this->returnValue(true)); $defaultDataValueFormatter = $this->getMockBuilder('\\SMW\\DataValues\\ValueFormatters\\DataValueFormatter')->disableOriginalConstructor()->getMockForAbstractClass(); $defaultDataValueFormatter->expects($this->never())->method('isFormatterFor'); $dataValue = $this->getMockBuilder('\\SMWDataValue')->disableOriginalConstructor()->getMockForAbstractClass(); $instance = new DispatchingDataValueFormatter(); $instance->addDefaultDataValueFormatter($defaultDataValueFormatter); $instance->addDataValueFormatter($dataValueFormatter); $this->assertInstanceOf('\\SMW\\DataValues\\ValueFormatters\\DataValueFormatter', $instance->getDataValueFormatterFor($dataValue)); }
private function newDispatchingDataValueFormatter() { $dispatchingDataValueFormatter = new DispatchingDataValueFormatter(); $dispatchingDataValueFormatter->addDataValueFormatter(new ReferenceValueFormatter()); $dispatchingDataValueFormatter->addDataValueFormatter(new MonolingualTextValueFormatter()); $dispatchingDataValueFormatter->addDataValueFormatter(new CodeStringValueFormatter()); // To be checked only after DispatchingDataValueFormatter::addDataValueFormatter did // not match any previous registered DataValueFormatters $dispatchingDataValueFormatter->addDefaultDataValueFormatter(new PropertyValueFormatter()); $dispatchingDataValueFormatter->addDefaultDataValueFormatter(new StringValueFormatter()); $dispatchingDataValueFormatter->addDefaultDataValueFormatter(new NumberValueFormatter()); $dispatchingDataValueFormatter->addDefaultDataValueFormatter(new TimeValueFormatter()); $dispatchingDataValueFormatter->addDefaultDataValueFormatter(new NoValueFormatter()); return $dispatchingDataValueFormatter; }