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