6 use InvalidArgumentException;
40 $title->resetArticleID( 17 );
47 if ( isset( $rowOverrides[
'rev_deleted'] ) ) {
48 $record->setVisibility( $rowOverrides[
'rev_deleted'] );
51 if ( isset( $rowOverrides[
'rev_id'] ) ) {
52 $record->setId( $rowOverrides[
'rev_id'] );
55 if ( isset( $rowOverrides[
'rev_page'] ) ) {
56 $record->setPageId( $rowOverrides[
'rev_page'] );
60 $record->setComment( $comment );
61 $record->setUser(
$user );
62 $record->setTimestamp(
'20101010000000' );
69 $title->resetArticleID( 17 );
89 $this->assertSame(
$title, $rec->getPageAsLinkTarget(),
'getPageAsLinkTarget' );
90 $this->assertSame( $wikiId, $rec->getWikiId(),
'getWikiId' );
95 $title->resetArticleID( 17 );
97 yield
'not a wiki id' => [
119 $this->assertNull( $record->getId() );
120 $record->setId( 888 );
121 $this->assertSame( 888, $record->getId() );
127 $this->assertNull( $record->getUser() );
128 $record->setUser(
$user );
129 $this->assertSame(
$user, $record->getUser() );
134 $this->assertSame( 0, $record->getPageId() );
135 $record->setPageId( 999 );
136 $this->assertSame( 999, $record->getPageId() );
141 $this->assertNull( $record->getParentId() );
142 $record->setParentId( 100 );
143 $this->assertSame( 100, $record->getParentId() );
173 $record->setSlot( $slot );
180 $this->assertFalse( $record->isMinor() );
181 $record->setMinorEdit(
true );
182 $this->assertSame(
true, $record->isMinor() );
187 $this->assertNull( $record->getTimestamp() );
188 $record->setTimestamp(
'20180101010101' );
189 $this->assertSame(
'20180101010101', $record->getTimestamp() );
194 $this->assertSame( 0, $record->getVisibility() );
201 $this->assertSame(
'phoiac9h4m842xq45sp7s6u21eteeq1', $record->getSha1() );
202 $record->setSha1(
'someHash' );
203 $this->assertSame(
'someHash', $record->getSha1() );
213 $this->assertSame( 0, $record->getSize() );
214 $record->setSize( 775 );
215 $this->assertSame( 775, $record->getSize() );
221 $this->assertNull( $record->getComment() );
222 $record->setComment( $comment );
223 $this->assertSame( $comment, $record->getComment() );
231 'slot_revision_id' =>
null,
232 'slot_content_id' => 1,
233 'content_address' =>
null,
235 'role_name' =>
'main',
236 'slot_origin' =>
null
243 'slot_revision_id' =>
null,
244 'slot_content_id' => 1,
245 'content_address' =>
'foo',
247 'role_name' =>
'aux',
253 $record->setSlot( $mainSlot );
254 $record->setSlot( $auxSlot );
256 $this->assertSame( [
'main' ], $record->getOriginalSlots()->getSlotRoles() );
257 $this->assertSame( $mainSlot, $record->getOriginalSlots()->getSlot(
SlotRecord::MAIN ) );
259 $this->assertSame( [
'aux' ], $record->getInheritedSlots()->getSlotRoles() );
260 $this->assertSame( $auxSlot, $record->getInheritedSlots()->getSlot(
'aux' ) );
272 $record->removeSlot(
'b' );
274 $this->assertTrue( $record->hasSlot(
'a' ) );
275 $this->assertFalse( $record->hasSlot(
'b' ) );
286 $update->modifyContent(
'b', $x );
287 $update->modifyContent(
'c', $x );
288 $update->removeSlot(
'c' );
289 $update->removeSlot(
'd' );
296 $record->applyUpdate( $update );
298 $this->assertEquals( [
'b' ], array_keys( $record->getOriginalSlots()->getSlots() ) );
299 $this->assertEquals( $a, $record->getSlot(
'a' )->getContent() );
300 $this->assertEquals( $x, $record->getSlot(
'b' )->getContent() );
301 $this->assertFalse( $record->hasSlot(
'c' ) );
313 ->disableOriginalConstructor()
319 yield
'empty' => [
$rev ];
324 $rev->setComment( $comment );
325 yield
'no timestamp' => [
$rev ];
329 $rev->setComment( $comment );
330 $rev->setTimestamp(
'20101010000000' );
331 yield
'no content' => [
$rev ];
335 $rev->setComment( $comment );
336 $rev->setTimestamp(
'20101010000000' );
337 yield
'no user' => [
$rev ];
342 $rev->setTimestamp(
'20101010000000' );
343 yield
'no comment' => [
$rev ];
350 $this->assertFalse(
$rev->isReadyForInsertion() );