Awight has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/404473 )

Change subject: Move mock ORESService into a new helper class
......................................................................

Move mock ORESService into a new helper class

Bug: T184142
Change-Id: Ia88360f068d873da8a3cff930011ec2de7abf259
---
A tests/phpunit/includes/MockOresServiceBuilder.php
M tests/phpunit/includes/ScoreFetcherTest.php
2 files changed, 53 insertions(+), 42 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ORES 
refs/changes/73/404473/1

diff --git a/tests/phpunit/includes/MockOresServiceBuilder.php 
b/tests/phpunit/includes/MockOresServiceBuilder.php
new file mode 100644
index 0000000..69e1f26
--- /dev/null
+++ b/tests/phpunit/includes/MockOresServiceBuilder.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace ORES\Tests;
+
+use PHPUnit_Framework_TestCase;
+
+use ORES\ORESService;
+
+class MockOresServiceBuilder {
+
+       public static function getORESServiceMock( PHPUnit_Framework_TestCase 
$test ) {
+               $mock = $test->getMockBuilder( ORESService::class )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+
+               $mock->expects( $test->any() )
+                       ->method( 'request' )
+                       ->willReturnCallback( [ self::class, 'mockORESResponse' 
] );
+
+               return $mock;
+       }
+
+       public static function mockORESResponse( array $params, 
$originalRequest = null ) {
+               $models = [];
+               foreach ( explode( '|', $params['models'] ) as $model ) {
+                       $models[$model] = [ 'version' => '0.0.4' ];
+               }
+
+               $scores = [];
+               foreach ( explode( '|', $params['revids'] ) as $revid ) {
+                       $scores[(string)$revid] = self::mockRevisionResponse( 
$revid, array_keys( $models ) );
+               }
+
+               return [ ORESService::getWikiID() => [ 'models' => $models, 
'scores' => $scores ] ];
+       }
+
+       public static function mockRevisionResponse( $revid, $models ) {
+               $result = [];
+               foreach ( $models as $model ) {
+                       $result[$model] = [ 'score' => [] ];
+                       $probability = (float)strrev( substr( $revid, -2 ) ) / 
100;
+                       $result[$model]['score']['probability'] = [
+                               'true' => $probability,
+                               'false' => 1 - $probability
+                       ];
+                       $result[$model]['score']['prediction'] = $probability > 
0.5;
+               }
+               return $result;
+       }
+
+}
diff --git a/tests/phpunit/includes/ScoreFetcherTest.php 
b/tests/phpunit/includes/ScoreFetcherTest.php
index 095b9dc..2aaabd9 100644
--- a/tests/phpunit/includes/ScoreFetcherTest.php
+++ b/tests/phpunit/includes/ScoreFetcherTest.php
@@ -2,7 +2,6 @@
 
 namespace ORES\Tests;
 
-use ORES\ORESService;
 use ORES\ScoreFetcher;
 use ORES\Storage\HashModelLookup;
 
@@ -25,51 +24,12 @@
                        'goodfaith' => [ 'id' => self::GOODFAITH, 'version' => 
'0.0.3' ],
                ];
                $this->setService( 'ORESModelLookup', new HashModelLookup( 
$modelData ) );
-               $this->setService( 'ORESService', $this->getORESServiceMock() );
+               $mockOresService = MockOresServiceBuilder::getORESServiceMock( 
$this );
+               $this->setService( 'ORESService', $mockOresService );
                $this->setMwGlobals( [
                        'wgOresModels' => [ 'damaging' => true ],
                ] );
                $this->tablesUsed[] = 'ores_model';
-       }
-
-       private function getORESServiceMock() {
-               $mock = $this->getMockBuilder( ORESService::class )
-                       ->disableOriginalConstructor()
-                       ->getMock();
-
-               $mock->expects( $this->any() )
-                       ->method( 'request' )
-                       ->willReturnCallback( [ $this, 'mockORESResponse' ] );
-
-               return $mock;
-       }
-
-       public static function mockORESResponse( array $params, 
$originalRequest = null ) {
-               $models = [];
-               foreach ( explode( '|', $params['models'] ) as $model ) {
-                       $models[$model] = [ 'version' => '0.0.4' ];
-               }
-
-               $scores = [];
-               foreach ( explode( '|', $params['revids'] ) as $revid ) {
-                       $scores[(string)$revid] = self::mockRevisionResponse( 
$revid, array_keys( $models ) );
-               }
-
-               return [ ORESService::getWikiID() => [ 'models' => $models, 
'scores' => $scores ] ];
-       }
-
-       public static function mockRevisionResponse( $revid, $models ) {
-               $result = [];
-               foreach ( $models as $model ) {
-                       $result[$model] = [ 'score' => [] ];
-                       $probability = (float)strrev( substr( $revid, -2 ) ) / 
100;
-                       $result[$model]['score']['probability'] = [
-                               'true' => $probability,
-                               'false' => 1 - $probability
-                       ];
-                       $result[$model]['score']['prediction'] = $probability > 
0.5;
-               }
-               return $result;
        }
 
        public function provideTestGetScores() {

-- 
To view, visit https://gerrit.wikimedia.org/r/404473
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia88360f068d873da8a3cff930011ec2de7abf259
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ORES
Gerrit-Branch: master
Gerrit-Owner: Awight <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to