From 6337c37e456656f07e82d809697ff31a15ffb033 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lys=C3=BD?= Date: Tue, 2 Feb 2021 13:47:17 +0100 Subject: [PATCH] Update tests for third party API [MAILPOET-3307] --- tests/integration/API/MP/APITest.php | 47 +++++++++------------------- 1 file changed, 15 insertions(+), 32 deletions(-) diff --git a/tests/integration/API/MP/APITest.php b/tests/integration/API/MP/APITest.php index 155b043f56..806af4c469 100644 --- a/tests/integration/API/MP/APITest.php +++ b/tests/integration/API/MP/APITest.php @@ -28,7 +28,8 @@ class APITest extends \MailPoetTest { Stub::makeEmpty(ConfirmationEmailMailer::class, ['sendConfirmationEmail']), Stub::makeEmptyExcept(RequiredCustomFieldValidator::class, 'validate'), Stub::makeEmpty(ApiDataSanitizer::class), - Stub::makeEmpty(WelcomeScheduler::class) + Stub::makeEmpty(WelcomeScheduler::class), + SettingsController::getInstance() ); } @@ -244,6 +245,7 @@ class APITest extends \MailPoetTest { '_sendConfirmationEmail' => function () use (&$sent) { $sent = true; }, + 'settings' => SettingsController::getInstance(), ]); $segments = [$segment->id]; @@ -255,13 +257,6 @@ class APITest extends \MailPoetTest { // should send $API->subscribeToLists($subscriber->email, $segments, ['skip_subscriber_notification' => true]); expect($sent)->equals(true); - - // should not send - $sent = false; - $subscriber->countConfirmations = 1; - $subscriber->save(); - $API->subscribeToLists($subscriber->email, $segments, ['skip_subscriber_notification' => true]); - expect($sent)->equals(false); } public function testItSendsNotifiationEmailWhenBeingAddedToList() { @@ -283,7 +278,8 @@ class APITest extends \MailPoetTest { $this->makeEmpty(ConfirmationEmailMailer::class), $this->makeEmpty(RequiredCustomFieldValidator::class), $this->makeEmpty(ApiDataSanitizer::class), - Stub::makeEmpty(WelcomeScheduler::class) + Stub::makeEmpty(WelcomeScheduler::class), + SettingsController::getInstance() ); $API->subscribeToLists($subscriber->email, $segments, ['send_confirmation_email' => false, 'skip_subscriber_notification' => true]); @@ -295,7 +291,8 @@ class APITest extends \MailPoetTest { $this->makeEmpty(ConfirmationEmailMailer::class), $this->makeEmpty(RequiredCustomFieldValidator::class), $this->makeEmpty(ApiDataSanitizer::class), - Stub::makeEmpty(WelcomeScheduler::class) + Stub::makeEmpty(WelcomeScheduler::class), + SettingsController::getInstance() ); $API->subscribeToLists($subscriber->email, $segments, ['send_confirmation_email' => false, 'skip_subscriber_notification' => false]); } @@ -322,6 +319,7 @@ class APITest extends \MailPoetTest { 'subscribeToLists', [ '_scheduleWelcomeNotification' => Expected::once(), + 'settings' => SettingsController::getInstance(), ], $this); $subscriber = Subscriber::create(); $subscriber->hydrate(Fixtures::get('subscriber_template')); @@ -336,31 +334,13 @@ class APITest extends \MailPoetTest { $API->subscribeToLists($subscriber->id, [$segment->id], ['skip_subscriber_notification' => true]); } - public function testItDoesNotScheduleWelcomeNotificationAfterSubscribingSubscriberToListsIfStatusIsNotSubscribed() { - $API = Stub::makeEmptyExcept( - \MailPoet\API\MP\v1\API::class, - 'subscribeToLists', - [ - '_scheduleWelcomeNotification' => Expected::never(), - ], $this); - $subscriber = Subscriber::create(); - $subscriber->hydrate(Fixtures::get('subscriber_template')); - $subscriber->save(); - $segment = Segment::createOrUpdate( - [ - 'name' => 'Default', - 'type' => Segment::TYPE_DEFAULT, - ] - ); - $API->subscribeToLists($subscriber->id, [$segment->id], ['skip_subscriber_notification' => true]); - } - public function testItDoesNotScheduleWelcomeNotificationAfterSubscribingSubscriberToListsWhenDisabledByOption() { $API = Stub::makeEmptyExcept( \MailPoet\API\MP\v1\API::class, 'subscribeToLists', [ '_scheduleWelcomeNotification' => Expected::never(), + 'settings' => SettingsController::getInstance(), ], $this); $subscriber = Subscriber::create(); $subscriber->hydrate(Fixtures::get('subscriber_template')); @@ -536,7 +516,9 @@ class APITest extends \MailPoetTest { [ 'newSubscriberNotificationMailer' => Stub::makeEmpty(NewSubscriberNotificationMailer::class, ['send']), 'requiredCustomFieldValidator' => Stub::makeEmpty(RequiredCustomFieldValidator::class, ['validate']), + 'confirmationEmailMailer' => Stub::makeEmpty(ConfirmationEmailMailer::class), '_scheduleWelcomeNotification' => Expected::once(), + 'settings' => $settings, ], $this ); @@ -565,10 +547,11 @@ class APITest extends \MailPoetTest { ); $API = new \MailPoet\API\MP\v1\API( Stub::makeEmpty(NewSubscriberNotificationMailer::class, ['send']), - Stub::makeEmpty(ConfirmationEmailMailer::class, ['sendConfirmationEmail']), + Stub::makeEmpty(ConfirmationEmailMailer::class, ['sendConfirmationEmailOnce']), Stub::makeEmptyExcept(RequiredCustomFieldValidator::class, 'validate'), Stub::makeEmpty(ApiDataSanitizer::class), - $welcomeScheduler + $welcomeScheduler, + Stub::makeEmpty(SettingsController::class) ); $subscriber = [ 'email' => 'test@example.com', @@ -637,7 +620,7 @@ class APITest extends \MailPoetTest { public function testItThrowsWhenConfirmationEmailFailsToSend() { $confirmationMailer = $this->createMock(ConfirmationEmailMailer::class); $confirmationMailer->expects($this->once()) - ->method('sendConfirmationEmail') + ->method('sendConfirmationEmailOnce') ->willReturnCallback(function (Subscriber $subscriber) { $subscriber->setError('Big Error'); return false;