mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo
synced 2024-12-04 20:28:49 +00:00
afdcce5059
This patch contains a series of different clean-ups in test classes. Some documentation is added as well as soft and hard type hints. Note all this is exclusively done in tests. So if the CI is fine with it, it can't be wrong. Right? ;-) Change-Id: Ibcf1f65f48ac0fb41837c47672dddfd70302e9fd
91 lines
1.8 KiB
PHP
91 lines
1.8 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @covers EchoTargetPage
|
|
*/
|
|
class EchoTargetPageTest extends MediaWikiTestCase {
|
|
|
|
public function testCreate() {
|
|
$this->assertNull(
|
|
EchoTargetPage::create(
|
|
$this->mockTitle( 0 ),
|
|
$this->mockEchoEvent()
|
|
)
|
|
);
|
|
|
|
$this->assertInstanceOf(
|
|
EchoTargetPage::class,
|
|
EchoTargetPage::create(
|
|
$this->mockTitle( 1 ),
|
|
$this->mockEchoEvent()
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @return EchoTargetPage
|
|
*/
|
|
public function testNewFromRow() {
|
|
$row = (object)[
|
|
'etp_page' => 2,
|
|
'etp_event' => 3
|
|
];
|
|
$obj = EchoTargetPage::newFromRow( $row );
|
|
$this->assertInstanceOf( EchoTargetPage::class, $obj );
|
|
|
|
return $obj;
|
|
}
|
|
|
|
public function testNewFromRowWithException() {
|
|
$row = (object)[
|
|
'etp_event' => 3
|
|
];
|
|
$this->expectException( MWException::class );
|
|
EchoTargetPage::newFromRow( $row );
|
|
}
|
|
|
|
/**
|
|
* @depends testNewFromRow
|
|
*/
|
|
public function testToDbArray( EchoTargetPage $obj ) {
|
|
$row = $obj->toDbArray();
|
|
$this->assertTrue( is_array( $row ) );
|
|
|
|
// Not very common to assert that a field does _not_ exist
|
|
// but since we are explicitly removing it, it seems to make sense.
|
|
$this->assertArrayNotHasKey( 'etp_user', $row );
|
|
|
|
$this->assertArrayHasKey( 'etp_page', $row );
|
|
$this->assertArrayHasKey( 'etp_event', $row );
|
|
}
|
|
|
|
/**
|
|
* @return Title
|
|
*/
|
|
protected function mockTitle( $pageId ) {
|
|
$event = $this->getMockBuilder( Title::class )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
$event->expects( $this->any() )
|
|
->method( 'getArticleID' )
|
|
->will( $this->returnValue( $pageId ) );
|
|
|
|
return $event;
|
|
}
|
|
|
|
/**
|
|
* @return EchoEvent
|
|
*/
|
|
protected function mockEchoEvent( $eventId = 1 ) {
|
|
$event = $this->getMockBuilder( EchoEvent::class )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
$event->expects( $this->any() )
|
|
->method( 'getId' )
|
|
->will( $this->returnValue( $eventId ) );
|
|
|
|
return $event;
|
|
}
|
|
|
|
}
|