resetArticleID( 17 ); yield 'local wiki, with title' => [ $title, PageIdentity::LOCAL ]; yield 'local wiki' => [ new PageIdentityValue( 17, NS_MAIN, 'Dummy', PageIdentity::LOCAL ), PageIdentity::LOCAL, ]; yield 'foreign wiki' => [ new PageIdentityValue( 17, NS_MAIN, 'Dummy', 'acmewiki' ), 'acmewiki', PreconditionException::class ]; } /** * @dataProvider provideConstructor * * @param PageIdentity $page * @param bool $wikiId * @param string|null $expectedException */ public function testConstructorAndGetters( PageIdentity $page, $wikiId = RevisionRecord::LOCAL, string $expectedException = null ) { $rec = new MutableRevisionRecord( $page, $wikiId ); $this->assertTrue( $page->isSamePageAs( $rec->getPage() ), 'getPage' ); $this->assertSame( $wikiId, $rec->getWikiId(), 'getWikiId' ); if ( $expectedException ) { $this->expectException( $expectedException ); $rec->getPageAsLinkTarget(); } else { $this->assertTrue( TitleValue::newFromPage( $page )->isSameLinkAs( $rec->getPageAsLinkTarget() ), 'getPageAsLinkTarget' ); } } }