diff options
Diffstat (limited to 'bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageIdentifierTest.php')
-rw-r--r-- | bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageIdentifierTest.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageIdentifierTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageIdentifierTest.php new file mode 100644 index 00000000..42aa8412 --- /dev/null +++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageIdentifierTest.php @@ -0,0 +1,54 @@ +<?php + +namespace Mediawiki\DataModel\Test; + +use Mediawiki\DataModel\PageIdentifier; +use Mediawiki\DataModel\Title; + +/** + * @covers Mediawiki\DataModel\PageIdentifier + */ +class PageIdentifierTest extends \PHPUnit_Framework_TestCase { + + /** + * @dataProvider provideValidConstruction + */ + public function testValidConstruction( $title, $pageid, $identifiesPage ) { + $pageIdentifier = new PageIdentifier( $title, $pageid ); + if( is_string( $title ) ) { + $this->assertEquals( new Title( $title ), $pageIdentifier->getTitle() ); + } else { + $this->assertEquals( $title, $pageIdentifier->getTitle() ); + } + $this->assertEquals( $pageid, $pageIdentifier->getId() ); + $this->assertEquals( $identifiesPage, $pageIdentifier->identifiesPage() ); + } + + public function provideValidConstruction() { + return array( + array( null, null, false ), + array( new Title( 'Foo' ), null, true ), + array( new Title( 'Foo', 2 ), null, true ), + array( null, 3, true ), + ); + } + + public function provideRoundTripObjects() { + return array( + array( new PageIdentifier( null, null ) ), + array( new PageIdentifier( null, 44 ) ), + array( new PageIdentifier( new Title( 'someTitle', 12 ), null ) ), + array( new PageIdentifier( new Title( 'someTitle', 55 ), 99 ) ), + ); + } + + /** + * @dataProvider provideRoundTripObjects + */ + public function testJsonRoundTrip( PageIdentifier $identifierObject ) { + $json = $identifierObject->jsonSerialize(); + $this->assertEquals( $identifierObject, PageIdentifier::jsonDeserialize( $json ) ); + } + +} +
\ No newline at end of file |