Phantom42 has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/401497 )
Change subject: Add unit test for NewsletterDb::getNewsletterSubscribersCount
......................................................................
Add unit test for NewsletterDb::getNewsletterSubscribersCount
Bug: T183808
Depends-on: I413ee3d9bca3b5b20982f460621071027f399415
Change-Id: I65ad46213f747a992a9f0094c2fde2a964bcb0ef
---
M tests/NewsletterDbTest.php
1 file changed, 63 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Newsletter
refs/changes/97/401497/1
diff --git a/tests/NewsletterDbTest.php b/tests/NewsletterDbTest.php
index dcd4a27..9441640 100644
--- a/tests/NewsletterDbTest.php
+++ b/tests/NewsletterDbTest.php
@@ -111,6 +111,69 @@
}
/**
+ * @covers NewsletterDb::getNewsletterSubscribersCount
+ */
+ public function testGetSubscribersCount() {
+ $mockWriteDb = $this->getMockIDatabase();
+ $newsletter = $this->getTestNewsletter();
+ $firstUser = User::newFromName( 'TestUser1' );
+ $secondUser = User::newFromName( 'TestUser2' );
+ $firstUser->addToDatabase();
+ $secondUser->addToDatabase();
+
+ $mockWriteDb
+ ->expects( $this->once() )
+ ->method( 'insert' )
+ ->with(
+ 'nl_subscriptions',
+ [
+ [
+ 'nls_subscriber_id' =>
$firstUser->getId(),
+ 'nls_newsletter_id' =>
$newsletter->getId()
+ ],
+ [
+ 'nls_subscriber_id' =>
$secondUser->getId(),
+ 'nls_newsletter_id' =>
$newsletter->getId()
+ ]
+ ]
+ );
+ $mockWriteDb->expects( $this->once() )
+ ->method( 'affectedRows' )
+ ->will( $this->returnValue( 2 ) );
+ $mockWriteDb
+ ->expects( $this->once() )
+ ->method( 'update' )
+ ->with(
+ 'nl_newsletters',
+ // For index reasons, count is negative
+ [ 'nl_subscriber_count=nl_subscriber_count-2'
], [ 'nl_id' => $newsletter->getId() ]
+ );
+ $mockWriteDb
+ ->expects( $this->once() )
+ ->method( 'selectField' )
+ ->with(
+ 'nl_newsletters',
+ 'nl_subscriber_count',
+ [ 'nl_id' => $newsletter->getId() ]
+ )->will(
+ // For index reasons, count is negative
+ $this->returnValue( -2 )
+ );
+
+ $table = new NewsletterDb( $this->getMockLoadBalancer(
$mockWriteDb ) );
+
+ // Add two subscribers before checking subscribers count
+ $result = $table->addSubscription( $this->getTestNewsletter(), [
+ $firstUser->getId(),
+ $secondUser->getId()
+ ] );
+ $this->assertTrue( $result );
+
+ $result = $table->getNewsletterSubscribersCount(
$newsletter->getId() );
+ $this->assertEquals( 2, $result );
+ }
+
+ /**
* @covers NewsletterDb::addPublisher
*/
public function testAddPublisher() {
--
To view, visit https://gerrit.wikimedia.org/r/401497
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I65ad46213f747a992a9f0094c2fde2a964bcb0ef
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Newsletter
Gerrit-Branch: master
Gerrit-Owner: Phantom42 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits