Update tests for third party API

[MAILPOET-3307]
This commit is contained in:
Jan Lysý
2021-02-02 13:47:17 +01:00
committed by Veljko V
parent 349918e45d
commit 6337c37e45

View File

@ -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;