Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove not needed dependencies from production code #34

Merged
merged 1 commit into from
Aug 25, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@
"require": {
"addwiki/mediawiki-api-base": "~1.0",
"addwiki/mediawiki-datamodel": "~0.5",
"wikibase/data-model-serialization": "~1.1",
"wikibase/data-model-services": "~1.0",
"serialization/serialization": "~3.2",
"wikibase/data-model": "~4.0",
"wikibase/data-model-services": "~1.0",
"wikibase/data-model-serialization": "~1.1"
},
"require-dev": {
"data-values/data-values": "~1.0.0",
"data-values/common": "~0.3.0",
"data-values/geo": "~1.0|~0.2.0",
Expand Down
21 changes: 8 additions & 13 deletions src/Api/Service/RevisionSaver.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,17 @@

namespace Wikibase\Api\Service;

use DataValues\Serializers\DataValueSerializer;
use Deserializers\Deserializer;
use InvalidArgumentException;
use Mediawiki\Api\MediawikiApi;
use Mediawiki\Api\SimpleRequest;
use Mediawiki\DataModel\Revision;
use RuntimeException;
use Serializers\Serializer;
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Entity\Property;
use Wikibase\DataModel\ItemContent;
use Wikibase\DataModel\PropertyContent;
use Wikibase\DataModel\SerializerFactory;

/**
* @author Adam Shorland
Expand All @@ -26,25 +25,23 @@ class RevisionSaver {
protected $api;

/**
* @var SerializerFactory
* @var Deserializer
*/
protected $serializerFactory;
private $entityDeserializer;

/**
* @var Deserializer
* @var Serializer
*/
private $entityDeserializer;
private $entitySerializer;

/**
* @param MediawikiApi $api
* @param Deserializer $entityDeserializer
*/
public function __construct( MediawikiApi $api, Deserializer $entityDeserializer ) {
public function __construct( MediawikiApi $api, Deserializer $entityDeserializer, Serializer $entitySerializer ) {
$this->api = $api;
$this->entityDeserializer = $entityDeserializer;
$this->serializerFactory = new SerializerFactory(
new DataValueSerializer()
);
$this->entitySerializer = $entitySerializer;
}

/**
Expand All @@ -56,15 +53,13 @@ public function __construct( MediawikiApi $api, Deserializer $entityDeserializer
* @returns Item|Property new version of the entity
*/
public function save( Revision $revision ) {
$serializer = $this->serializerFactory->newEntitySerializer();

if( !in_array( $revision->getContent()->getModel(), array( PropertyContent::MODEL, ItemContent::MODEL ) ) ) {
throw new RuntimeException( 'Can not save revisions with the given content model' );
}

/** @var Item|Property $entity */
$entity = $revision->getContent()->getData();
$serialized = $serializer->serialize( $entity );
$serialized = $this->entitySerializer->serialize( $entity );

$params = array(
'data' => json_encode( $serialized ),
Expand Down
8 changes: 4 additions & 4 deletions src/Api/Service/StatementCreator.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
namespace Wikibase\Api\Service;


use DataValues\Serializers\DataValueSerializer;
use Deserializers\Deserializer;
use Mediawiki\Api\MediawikiApi;
use Mediawiki\Api\SimpleRequest;
use UnexpectedValueException;
Expand All @@ -27,15 +27,15 @@ class StatementCreator {
private $api;

/**
* @var DataValueSerializer
* @var Deserializer
*/
private $dataValueSerializer;

/**
* @param MediawikiApi $api
* @param DataValueSerializer $dataValueSerializer
* @param Deserializer $dataValueSerializer
*/
public function __construct( MediawikiApi $api, DataValueSerializer $dataValueSerializer ) {
public function __construct( MediawikiApi $api, Deserializer $dataValueSerializer ) {
$this->api = $api;
$this->dataValueSerializer = $dataValueSerializer;
}
Expand Down
8 changes: 4 additions & 4 deletions src/Api/Service/ValueFormatter.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace Wikibase\Api\Service;

use DataValues\DataValue;
use DataValues\Serializers\DataValueSerializer;
use Deserializers\Deserializer;
use Mediawiki\Api\MediawikiApi;
use Mediawiki\Api\SimpleRequest;
use Wikibase\Api\GenericOptions;
Expand All @@ -19,15 +19,15 @@ class ValueFormatter {
private $api;

/**
* @var DataValueSerializer
* @var Deserializer
*/
private $dataValueSerializer;

/**
* @param MediawikiApi $api
* @param DataValueSerializer $dataValueSerializer
* @param Deserializer $dataValueSerializer
*/
public function __construct( MediawikiApi $api, DataValueSerializer $dataValueSerializer ) {
public function __construct( MediawikiApi $api, Deserializer $dataValueSerializer ) {
$this->api = $api;
$this->dataValueSerializer = $dataValueSerializer;
}
Expand Down
8 changes: 4 additions & 4 deletions src/Api/Service/ValueParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace Wikibase\Api\Service;

use DataValues\DataValue;
use DataValues\Deserializers\DataValueDeserializer;
use Deserializers\Deserializer;
use Mediawiki\Api\MediawikiApi;
use Mediawiki\Api\SimpleRequest;

Expand All @@ -19,15 +19,15 @@ class ValueParser {
private $api;

/**
* @var DataValueDeserializer
* @var Deserializer
*/
private $dataValueDeserializer;

/**
* @param MediawikiApi $api
* @param DataValueDeserializer $dataValueDeserializer
* @param Deserializer $dataValueDeserializer
*/
public function __construct( MediawikiApi $api, DataValueDeserializer $dataValueDeserializer ) {
public function __construct( MediawikiApi $api, Deserializer $dataValueDeserializer ) {
$this->api = $api;
$this->dataValueDeserializer = $dataValueDeserializer;
}
Expand Down
50 changes: 20 additions & 30 deletions src/Api/WikibaseFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

namespace Wikibase\Api;

use DataValues\Deserializers\DataValueDeserializer;
use DataValues\Serializers\DataValueSerializer;
use Deserializers\Deserializer;
use Mediawiki\Api\MediawikiApi;
use Serializers\Serializer;
use Wikibase\Api\Service\AliasGroupSetter;
use Wikibase\Api\Service\BadgeIdsGetter;
use Wikibase\Api\Service\ClaimCreator;
Expand Down Expand Up @@ -32,9 +32,6 @@
use Wikibase\DataModel\SerializerFactory;
use Wikibase\DataModel\Services\EntityId\BasicEntityIdParser;

/**
* @author Jeroen De Dauw
*/
class WikibaseFactory {

/**
Expand All @@ -43,10 +40,19 @@ class WikibaseFactory {
private $api;

/**
* @param MediawikiApi $api
* @var Deserializer
*/
public function __construct( MediawikiApi $api ) {
private $dataValueDeserializer;

/**
* @var Serializer
*/
private $dataValueSerializer;

public function __construct( MediawikiApi $api, Deserializer $dvDeserializer, Serializer $dvSerializer ) {
$this->api = $api;
$this->dataValueDeserializer = $dvDeserializer;
$this->dataValueSerializer = $dvSerializer;
}

/**
Expand All @@ -56,7 +62,8 @@ public function __construct( MediawikiApi $api ) {
public function newRevisionSaver() {
return new RevisionSaver(
$this->api,
$this->newDataModelDeserializerFactory()->newEntityDeserializer()
$this->newDataModelDeserializerFactory()->newEntityDeserializer(),
$this->newDataModelSerializerFactory()->newEntitySerializer()
);
}

Expand Down Expand Up @@ -89,7 +96,7 @@ public function newRevisionsGetter() {
public function newValueParser() {
return new ValueParser(
$this->api,
$this->newDataValueDeserializer()
$this->dataValueDeserializer
);
}

Expand All @@ -100,7 +107,7 @@ public function newValueParser() {
public function newValueFormatter() {
return new ValueFormatter(
$this->api,
$this->newDataValueSerializer()
$this->dataValueDeserializer
);
}

Expand Down Expand Up @@ -189,30 +196,13 @@ public function newRedirectCreator() {

private function newDataModelDeserializerFactory() {
return new DeserializerFactory(
$this->newDataValueDeserializer(),
$this->dataValueDeserializer,
new BasicEntityIdParser()
);
}

private function newDataValueDeserializer() {
return new DataValueDeserializer( array(
'number' => 'DataValues\NumberValue',
'string' => 'DataValues\StringValue',
'globecoordinate' => 'DataValues\GlobeCoordinateValue',
'monolingualtext' => 'DataValues\MonolingualTextValue',
'multilingualtext' => 'DataValues\MultilingualTextValue',
'quantity' => 'DataValues\QuantityValue',
'time' => 'DataValues\TimeValue',
'wikibase-entityid' => 'Wikibase\DataModel\Entity\EntityIdValue', )
);
}

private function newDataValueSerializer() {
return new DataValueSerializer();
}

private function newDataModelSerializerFactory() {
return new SerializerFactory( new DataValueSerializer() );
return new SerializerFactory( $this->dataValueSerializer );
}

/**
Expand Down Expand Up @@ -262,7 +252,7 @@ public function newClaimSetter() {
public function newStatementCreator() {
return new StatementCreator(
$this->api,
$this->newDataValueSerializer()
$this->dataValueDeserializer
);
}

Expand Down
22 changes: 21 additions & 1 deletion tests/integration/IntegrationTestBase.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

namespace Wikibase\Api\Test;

use DataValues\Deserializers\DataValueDeserializer;
use DataValues\Serializers\DataValueSerializer;
use Mediawiki\Api\MediawikiApi;
use Wikibase\Api\WikibaseFactory;

Expand All @@ -15,7 +17,25 @@ class IntegrationTestBase extends \PHPUnit_Framework_TestCase {
protected function setUp() {
parent::setUp();
$this->factory = new WikibaseFactory(
new MediawikiApi( 'http://localhost/w/api.php' )
new MediawikiApi( 'http://localhost/w/api.php' ),
$this->newDataValueDeserializer(),
new DataValueSerializer()
);
}

private function newDataValueDeserializer() {
return new DataValueDeserializer(
array(
'boolean' => 'DataValues\BooleanValue',
'number' => 'DataValues\NumberValue',
'string' => 'DataValues\StringValue',
'unknown' => 'DataValues\UnknownValue',
'globecoordinate' => 'DataValues\GlobeCoordinateValue',
'monolingualtext' => 'DataValues\MonolingualTextValue',
'multilingualtext' => 'DataValues\MultilingualTextValue',
'quantity' => 'DataValues\QuantityValue',
'time' => 'DataValues\TimeValue',
)
);
}

Expand Down
31 changes: 0 additions & 31 deletions tests/unit/Api/Service/RevisionSaverTest.php

This file was deleted.

24 changes: 11 additions & 13 deletions tests/unit/WikibaseFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,6 @@
*/
class WikibaseFactoryTest extends \PHPUnit_Framework_TestCase {

private function getMockApi() {
$mock = $this->getMockBuilder( '\Mediawiki\Api\MediawikiApi' )
->disableOriginalConstructor()
->getMock();
return $mock;
}

public function testValidConstructionWorks() {
new WikibaseFactory( $this->getMockApi() );
$this->assertTrue( true );
}

public function provideMethodsAndClasses() {
return array(
array( 'newAliasGroupSetter','\Wikibase\Api\Service\AliasGroupSetter' ),
Expand Down Expand Up @@ -50,11 +38,21 @@ public function provideMethodsAndClasses() {
* @dataProvider provideMethodsAndClasses
*/
public function testNewFactoryObject( $method, $class ) {
$factory = new WikibaseFactory( $this->getMockApi() );
$dvSerializer = $this->getMock( 'Serializers\Serializer' );
$dvDeserializer = $this->getMock( 'Deserializers\Deserializer' );

$factory = new WikibaseFactory( $this->getMockApi(), $dvDeserializer, $dvSerializer );

$this->assertTrue( method_exists( $factory, $method ) );
$object = $factory->$method();
$this->assertInstanceOf( $class, $object );
}

private function getMockApi() {
$mock = $this->getMockBuilder( '\Mediawiki\Api\MediawikiApi' )
->disableOriginalConstructor()
->getMock();
return $mock;
}

}