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

Reply via email to