jenkins-bot has submitted this change and it was merged. ( 
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, 64 insertions(+), 0 deletions(-)

Approvals:
  Umherirrender: Looks good to me, approved
  01tonythomas: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/tests/NewsletterDbTest.php b/tests/NewsletterDbTest.php
index e7b1a34..007e23c 100644
--- a/tests/NewsletterDbTest.php
+++ b/tests/NewsletterDbTest.php
@@ -114,6 +114,70 @@
        }
 
        /**
+        * @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: merged
Gerrit-Change-Id: I65ad46213f747a992a9f0094c2fde2a964bcb0ef
Gerrit-PatchSet: 6
Gerrit-Project: mediawiki/extensions/Newsletter
Gerrit-Branch: master
Gerrit-Owner: Phantom42 <[email protected]>
Gerrit-Reviewer: 01tonythomas <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Phantom42 <[email protected]>
Gerrit-Reviewer: Umherirrender <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to