Mwjames has uploaded a new change for review. https://gerrit.wikimedia.org/r/78141
Change subject: Minor renaming ...................................................................... Minor renaming For the sake of consistency DispatchableSource -> DispatchableSubject Change-Id: I0fe4347db64a86d2fd3c9c5d22bcd55bb468c06a --- M includes/ObservableSubject.php M includes/ObservableSubjectDispatcher.php M includes/Observer.php M includes/ParserData.php M includes/PropertyChangeNotifier.php M includes/Setup.php M tests/phpunit/MockObjectBuilder.php M tests/phpunit/includes/ObservableSubjectDispatcherTest.php M tests/phpunit/includes/PropertyChangeNotifierTest.php 9 files changed, 71 insertions(+), 49 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/SemanticMediaWiki refs/changes/41/78141/1 diff --git a/includes/ObservableSubject.php b/includes/ObservableSubject.php index 1ef9e4c..d907b9c 100644 --- a/includes/ObservableSubject.php +++ b/includes/ObservableSubject.php @@ -75,7 +75,7 @@ * * @since 1.9 */ - public function getSource(); + public function getSubject(); } @@ -167,13 +167,13 @@ } /** - * @see Observable::getSource + * @see Observable::getSubject * * @since 1.9 * * @return Observable */ - public function getSource() { + public function getSubject() { return $this; } diff --git a/includes/ObservableSubjectDispatcher.php b/includes/ObservableSubjectDispatcher.php index f8e5d29..44981fb 100644 --- a/includes/ObservableSubjectDispatcher.php +++ b/includes/ObservableSubjectDispatcher.php @@ -15,20 +15,20 @@ */ /** - * Interface describing a source that is dispatchable + * Interface describing a Subject that is dispatchable * * @ingroup Observer */ -interface DispatchableSource { +interface DispatchableSubject { /** - * Frowards requests fo + * Forwards requests to a ObservableDispatcher * * @since 1.9 * - * @param Dispatchable $dispatcher + * @param ObservableDispatcher $dispatcher */ - public function setDispatcher( ObservableDispatcher $dispatcher ); + public function setObservableDispatcher( ObservableDispatcher $dispatcher ); } @@ -49,9 +49,9 @@ * * @since 1.9 * - * @param mixed $source + * @param mixed $subject */ - public function setSource( $source ); + public function setSubject( DispatchableSubject $subject ); } @@ -64,7 +64,7 @@ * @par Example: * @code * $changeNotifier = new PropertyChangeNotifier( ... ); - * $changeNotifier->setDispatcher( new ObservableSubjectDispatcher( new ChangeObserver() ) ); + * $changeNotifier->setObservableDispatcher( new ObservableSubjectDispatcher( new ChangeObserver() ) ); * @endcode * * @ingroup Observer @@ -72,19 +72,19 @@ class ObservableSubjectDispatcher extends ObservableSubject implements ObservableDispatcher { /** @var mixed */ - protected $source = null; + protected $subject = null; /** - * Registeres the DispatchableSource + * Registeres a DispatchableSubject * * @since 1.9 * - * @param $source + * @param $subject * * @return ObservableSubjectDispatcher */ - public function setSource( $source ) { - $this->source = $source; + public function setSubject( DispatchableSubject $subject ) { + $this->subject = $subject; return $this; } @@ -97,8 +97,8 @@ * * @return mixed */ - public function getSource() { - return $this->source; + public function getSubject() { + return $this->subject; } } diff --git a/includes/Observer.php b/includes/Observer.php index 90b3617..a52e731 100644 --- a/includes/Observer.php +++ b/includes/Observer.php @@ -26,9 +26,9 @@ * * @since 1.9 * - * @param Observable $source + * @param Observable $observable */ - public function update( Observable $source ); + public function update( Observable $observable ); } @@ -43,12 +43,12 @@ /** * @since 1.9 * - * @param Observable|null $subject + * @param Observable|null $observable */ - public function __construct( Observable $subject = null ) { + public function __construct( Observable $observable = null ) { - if ( $subject instanceof Observable ) { - $subject->attach( $this ); + if ( $observable instanceof Observable ) { + $observable->attach( $this ); } } @@ -58,14 +58,14 @@ * * @since 1.9 * - * @param Observable|null $subject + * @param Observable|null $observable */ - public function update( Observable $subject ) { + public function update( Observable $observable ) { - if ( method_exists( $this, $subject->getState() ) ) { + if ( method_exists( $this, $observable->getState() ) ) { call_user_func_array( - array( $this, $subject->getState() ), - array( $subject->getSource() ) + array( $this, $observable->getState() ), + array( $observable->getSubject() ) ); } } diff --git a/includes/ParserData.php b/includes/ParserData.php index 9b7b401..307f6e8 100644 --- a/includes/ParserData.php +++ b/includes/ParserData.php @@ -405,7 +405,7 @@ // even finding uses of a property fails after its type was changed. if ( $this->updateJobs ) { $changeNotifier = new PropertyChangeNotifier( $store, $this->semanticData, Settings::newFromGlobals() ); - $changeNotifier->setDispatcher( new ObservableSubjectDispatcher( new ChangeObserver() ) )->detectChanges(); + $changeNotifier->setObservableDispatcher( new ObservableSubjectDispatcher( new ChangeObserver() ) )->detectChanges(); } // Actually store semantic data, or at least clear it if needed diff --git a/includes/PropertyChangeNotifier.php b/includes/PropertyChangeNotifier.php index 072e0b4..ed1d9bd 100644 --- a/includes/PropertyChangeNotifier.php +++ b/includes/PropertyChangeNotifier.php @@ -19,7 +19,7 @@ * * @ingroup SMW */ -class PropertyChangeNotifier implements TitleAccess, DispatchableSource { +class PropertyChangeNotifier implements TitleAccess, DispatchableSubject { /** @var Store */ protected $store; @@ -67,8 +67,8 @@ * * @param ObservableDispatcher $dispatcher */ - public function setDispatcher( ObservableDispatcher $dispatcher ) { - $this->dispatcher = $dispatcher->setSource( $this ); + public function setObservableDispatcher( ObservableDispatcher $dispatcher ) { + $this->dispatcher = $dispatcher->setSubject( $this ); return $this; } diff --git a/includes/Setup.php b/includes/Setup.php index eb6f5cb..dd01bef 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -169,7 +169,7 @@ $wgAutoloadClasses['SMW\Subscriber'] = $incDir . 'Observer.php'; $wgAutoloadClasses['SMW\ObservableDispatcher'] = $incDir . 'ObservableSubjectDispatcher.php'; - $wgAutoloadClasses['SMW\DispatchableSource'] = $incDir . 'ObservableSubjectDispatcher.php'; + $wgAutoloadClasses['SMW\DispatchableSubject'] = $incDir . 'ObservableSubjectDispatcher.php'; $wgAutoloadClasses['SMW\ObservableSubjectDispatcher'] = $incDir . 'ObservableSubjectDispatcher.php'; $wgAutoloadClasses['SMW\Cacheable'] = $incDir . 'Cacheable.php'; diff --git a/tests/phpunit/MockObjectBuilder.php b/tests/phpunit/MockObjectBuilder.php index 37a9f2d..ce76915 100644 --- a/tests/phpunit/MockObjectBuilder.php +++ b/tests/phpunit/MockObjectBuilder.php @@ -141,6 +141,10 @@ ->will( $this->returnValue( $this->setValue( 'getData' ) ) ); $parserData->expects( $this->any() ) + ->method( 'getTitle' ) + ->will( $this->returnValue( $this->setValue( 'getTitle' ) ) ); + + $parserData->expects( $this->any() ) ->method( 'getSubject' ) ->will( $this->returnValue( $this->setValue( 'getSubject' ) ) ); @@ -548,7 +552,9 @@ 'getPropertySubjects', 'refreshConceptCache', 'deleteConceptCache', - 'getConceptCacheStatus' + 'getConceptCacheStatus', + 'clearData', + 'updateData' ) ) ->getMock(); @@ -600,6 +606,14 @@ ->will( $this->setCallback( 'getQueryResult' ) ); $store->expects( $this->any() ) + ->method( 'updateData' ) + ->will( $this->setCallback( 'updateData' ) ); + + $store->expects( $this->any() ) + ->method( 'clearData' ) + ->will( $this->setCallback( 'clearData' ) ); + + $store->expects( $this->any() ) ->method( 'getAllPropertySubjects' ) ->will( $this->setCallback( 'getAllPropertySubjects' ) ); diff --git a/tests/phpunit/includes/ObservableSubjectDispatcherTest.php b/tests/phpunit/includes/ObservableSubjectDispatcherTest.php index 575a66f..e5913e1 100644 --- a/tests/phpunit/includes/ObservableSubjectDispatcherTest.php +++ b/tests/phpunit/includes/ObservableSubjectDispatcherTest.php @@ -28,6 +28,8 @@ */ class ObservableSubjectDispatcherTest extends SemanticMediaWikiTestCase { + protected $subject = null; + /** * Returns the name of the class to be tested * @@ -38,23 +40,23 @@ } /** - * Helper method that returns a DispatchableSource object + * Helper method that returns a DispatchableSubject object * * @since 1.9 * * @param $data * - * @return DispatchableSource + * @return DispatchableSubject */ - private function newDispatchableSource() { + private function newDispatchableSubject() { - $source = $this->getMockBuilder( '\SMW\DispatchableSource' ) - ->setMethods( array( 'setDispatcher' ) ) + $source = $this->getMockBuilder( '\SMW\DispatchableSubject' ) + ->setMethods( array( 'setObservableDispatcher' ) ) ->getMock(); $source->expects( $this->any() ) - ->method( 'setDispatcher' ) - ->will( $this->returnCallback( array( $this, 'setDispatcherCallback' ) ) ); + ->method( 'setObservableDispatcher' ) + ->will( $this->returnCallback( array( $this, 'setObservableDispatcherCallback' ) ) ); return $source; @@ -132,16 +134,17 @@ $dispatcher = $this->getInstance( $this->newObserver() ); // Register dispatcher with a source - $source = $this->newDispatchableSource(); - $source->setDispatcher( $dispatcher ); + $source = $this->newDispatchableSubject(); + $source->setObservableDispatcher( $dispatcher ); // Rather being the source itself, the dispatcher returns the invoked instance - $this->assertEquals( $this, $dispatcher->getSource() ); + $this->assertInstanceOf( '\SMW\DispatchableSubject', $this->subject ); + $this->assertEquals( $this->subject, $dispatcher->getSubject() ); // The dipatchers forwards a registered state change but the Observer // is using the invoked source ($this) as means to communicate $dispatcher->setState( 'lila' ); - $this->assertEquals( 'lilaObserver was informed by source', $this->ObserverSentAMessage ); + $this->assertEquals( 'lilaObserver was informed by source', $this->subject->ObserverSentAMessage ); } @@ -163,8 +166,13 @@ * * @param ObservableDispatcher $dispatcher */ - public function setDispatcherCallback( ObservableDispatcher $dispatcher ) { - $dispatcher->setSource( $this ); + public function setObservableDispatcherCallback( ObservableDispatcher $dispatcher ) { + + $this->subject = $this->getMockBuilder( '\SMW\DispatchableSubject' ) + ->setMethods( array( 'setObservableDispatcher' ) ) + ->getMock(); + + $dispatcher->setSubject( $this->subject ); } } diff --git a/tests/phpunit/includes/PropertyChangeNotifierTest.php b/tests/phpunit/includes/PropertyChangeNotifierTest.php index 96a3664..ce3590e 100644 --- a/tests/phpunit/includes/PropertyChangeNotifierTest.php +++ b/tests/phpunit/includes/PropertyChangeNotifierTest.php @@ -95,7 +95,7 @@ $instance = $this->getInstance( $store, $data, $settings ); $observer = new MockChangeObserver(); - $instance->setDispatcher( new ObservableSubjectDispatcher( $observer ) ); + $instance->setObservableDispatcher( new ObservableSubjectDispatcher( $observer ) ); $this->assertInstanceOf( $this->getClass(), $instance->detectChanges() ); $this->assertEquals( $subject->getTitle(), $instance->getTitle() ); -- To view, visit https://gerrit.wikimedia.org/r/78141 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0fe4347db64a86d2fd3c9c5d22bcd55bb468c06a Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/SemanticMediaWiki Gerrit-Branch: master Gerrit-Owner: Mwjames <jamesin.hongkon...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits