Remove old Setting model from integration tests

[MAILPOET-2436]
This commit is contained in:
Jan Jakeš
2019-10-29 18:14:26 +01:00
committed by Jack Kitterhing
parent 7bddf631c5
commit 40c87d50fe
34 changed files with 134 additions and 93 deletions

View File

@ -9,8 +9,8 @@ use MailPoet\Models\NewsletterOption;
use MailPoet\Models\NewsletterOptionField;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\SendingQueue as SendingQueueModel;
use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Tasks\Sending;
class SendingQueueTest extends \MailPoetTest {
@ -118,7 +118,7 @@ class SendingQueueTest extends \MailPoetTest {
\ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);
\ORM::raw_execute('TRUNCATE ' . NewsletterOption::$_table);
\ORM::raw_execute('TRUNCATE ' . NewsletterOptionField::$_table);
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
\ORM::raw_execute('TRUNCATE ' . SendingQueueModel::$_table);
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
}

View File

@ -9,10 +9,10 @@ use MailPoet\API\JSON\Response as APIResponse;
use MailPoet\API\JSON\v1\Settings;
use MailPoet\Cron\Workers\InactiveSubscribers;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\Setting;
use MailPoet\Services\AuthorizedEmailsController;
use MailPoet\Services\Bridge;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
class SettingsTest extends \MailPoetTest {
@ -41,7 +41,7 @@ class SettingsTest extends \MailPoetTest {
expect($response->data)->notEmpty();
expect($response->data['some']['setting']['key'])->true();
Setting::deleteMany();
$this->di_container->get(SettingsRepository::class)->truncate();
$this->settings->resetCache();
$response = $this->endpoint->get();
expect($response->status)->equals(APIResponse::STATUS_OK);
@ -96,6 +96,6 @@ class SettingsTest extends \MailPoetTest {
}
function _after() {
\ORM::forTable(Setting::$_table)->deleteMany();
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -9,9 +9,9 @@ use MailPoet\API\JSON\v1\Setup;
use MailPoet\Config\Activator;
use MailPoet\Config\Populator;
use MailPoet\Features\FeaturesController;
use MailPoet\Models\Setting;
use MailPoet\Referrals\ReferralDetector;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Subscription\Captcha;
use MailPoet\WooCommerce\TransactionalEmails;
use MailPoet\WP\Functions as WPFunctions;
@ -57,6 +57,6 @@ class SetupTest extends \MailPoetTest {
}
function _after() {
Setting::deleteMany();
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -17,12 +17,12 @@ use MailPoet\Models\NewsletterOption;
use MailPoet\Models\NewsletterOptionField;
use MailPoet\Models\Segment;
use MailPoet\Models\SendingQueue;
use MailPoet\Models\Setting;
use MailPoet\Models\Subscriber;
use MailPoet\Models\SubscriberIP;
use MailPoet\Models\SubscriberSegment;
use MailPoet\Segments\SubscribersListings;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Subscribers\ConfirmationEmailMailer;
use MailPoet\Subscribers\LinkTokens;
use MailPoet\Subscribers\RequiredCustomFieldValidator;
@ -819,6 +819,6 @@ class SubscribersTest extends \MailPoetTest {
\ORM::raw_execute('TRUNCATE ' . SubscriberSegment::$_table);
\ORM::raw_execute('TRUNCATE ' . SubscriberIP::$_table);
\ORM::raw_execute('TRUNCATE ' . CustomField::$_table);
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -5,8 +5,8 @@ namespace MailPoet\Test\Cron;
use Codeception\Stub;
use MailPoet\Cron\CronHelper;
use MailPoet\Cron\DaemonHttpRunner;
use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
use MailPoet\WP\Functions as WPFunctions;
class CronHelperTest extends \MailPoetTest {
@ -326,7 +326,7 @@ class CronHelperTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
private function getDeamonTestData() {

View File

@ -4,8 +4,8 @@ namespace MailPoet\Test\Cron;
use Codeception\Stub;
use MailPoet\Cron\CronTrigger;
use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
require_once('CronTriggerMockMethod.php');
require_once('CronTriggerMockMethodWithException.php');
@ -67,6 +67,6 @@ class CronTriggerTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -10,8 +10,8 @@ use MailPoet\Cron\DaemonHttpRunner;
use MailPoet\Cron\Workers\SimpleWorker;
use MailPoet\Cron\Workers\WorkersFactory;
use MailPoet\DI\ContainerWrapper;
use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
use MailPoet\WP\Functions as WPFunctions;
class DaemonHttpRunnerTest extends \MailPoetTest {
@ -271,7 +271,7 @@ class DaemonHttpRunnerTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
private function createWorkersFactoryMock(array $workers = []) {

View File

@ -8,8 +8,8 @@ use MailPoet\Cron\Daemon;
use MailPoet\Cron\Workers\SimpleWorker;
use MailPoet\Cron\Workers\WorkersFactory;
use MailPoet\DI\ContainerWrapper;
use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
class DaemonTest extends \MailPoetTest {
@ -32,7 +32,7 @@ class DaemonTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
private function createWorkersFactoryMock(array $workers = []) {

View File

@ -5,8 +5,8 @@ namespace MailPoet\Test\Cron;
use MailPoet\Cron\CronHelper;
use MailPoet\Cron\Supervisor;
use MailPoet\DI\ContainerWrapper;
use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
class SupervisorTest extends \MailPoetTest {
/** @var SettingsController */
@ -73,6 +73,6 @@ class SupervisorTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -4,8 +4,8 @@ namespace MailPoet\Cron\Triggers;
use MailPoet\API\JSON\Endpoints\Cron;
use MailPoet\Cron\CronHelper;
use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
class MailPoetTest extends \MailPoetTest {
/** @var SettingsController */
@ -30,6 +30,6 @@ class MailPoetTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -13,8 +13,8 @@ use MailPoet\Mailer\Mailer;
use MailPoet\Mailer\MailerLog;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\SendingQueue;
use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Tasks\Sending as SendingTask;
use MailPoet\WP\Functions as WPFunctions;
@ -232,7 +232,7 @@ class WordPressTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
\ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
}

View File

@ -8,10 +8,10 @@ use MailPoet\Cron\Workers\Bounce\BounceTestMockAPI as MockAPI;
use MailPoet\Mailer\Mailer;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\ScheduledTaskSubscriber;
use MailPoet\Models\Setting;
use MailPoet\Models\Subscriber;
use MailPoet\Services\Bridge\API;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
require_once('BounceTestMockAPI.php');
@ -129,7 +129,7 @@ class BounceTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
\ORM::raw_execute('TRUNCATE ' . ScheduledTaskSubscriber::$_table);
\ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);

View File

@ -7,8 +7,8 @@ use Codeception\Stub;
use Codeception\Stub\Expected;
use MailPoet\Cron\Workers\KeyCheck\KeyCheckWorkerMockImplementation as MockKeyCheckWorker;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\Setting;
use MailPoet\Services\Bridge;
use MailPoet\Settings\SettingsRepository;
require_once('KeyCheckWorkerMockImplementation.php');
@ -75,7 +75,7 @@ class KeyCheckWorkerTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
}
}

View File

@ -4,9 +4,9 @@ namespace MailPoet\Test\Cron\Workers\KeyCheck;
use Codeception\Util\Stub;
use MailPoet\Cron\Workers\KeyCheck\PremiumKeyCheck;
use MailPoet\Models\Setting;
use MailPoet\Services\Bridge;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
class PremiumKeyCheckTest extends \MailPoetTest {
@ -57,6 +57,6 @@ class PremiumKeyCheckTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -6,9 +6,9 @@ use Codeception\Stub;
use Codeception\Stub\Expected;
use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck;
use MailPoet\Mailer\Mailer;
use MailPoet\Models\Setting;
use MailPoet\Services\Bridge;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
class SendingServiceKeyCheckTest extends \MailPoetTest {
function _before() {
@ -59,6 +59,6 @@ class SendingServiceKeyCheckTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -17,11 +17,11 @@ use MailPoet\Models\ScheduledTask;
use MailPoet\Models\ScheduledTaskSubscriber;
use MailPoet\Models\Segment;
use MailPoet\Models\SendingQueue;
use MailPoet\Models\Setting;
use MailPoet\Models\Subscriber;
use MailPoet\Models\SubscriberSegment;
use MailPoet\Newsletter\Scheduler\WelcomeScheduler;
use MailPoet\Segments\SubscribersFinder;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Tasks\Sending as SendingTask;
class SchedulerTest extends \MailPoetTest {
@ -840,7 +840,7 @@ class SchedulerTest extends \MailPoetTest {
function _after() {
Carbon::setTestNow();
\ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
\ORM::raw_execute('TRUNCATE ' . ScheduledTaskSubscriber::$_table);
\ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);

View File

@ -9,8 +9,8 @@ use MailPoet\Mailer\MailerLog;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\ScheduledTaskSubscriber;
use MailPoet\Models\SendingQueue;
use MailPoet\Models\Setting;
use MailPoet\Models\Subscriber;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Tasks\Sending as SendingTask;
use MailPoet\WP\Functions as WPFunctions;
@ -193,7 +193,7 @@ class MigrationTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
\ORM::raw_execute('TRUNCATE ' . ScheduledTaskSubscriber::$_table);
\ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);

View File

@ -26,7 +26,6 @@ use MailPoet\Models\ScheduledTask;
use MailPoet\Models\ScheduledTaskSubscriber;
use MailPoet\Models\Segment;
use MailPoet\Models\SendingQueue;
use MailPoet\Models\Setting;
use MailPoet\Models\StatisticsNewsletters;
use MailPoet\Models\Subscriber;
use MailPoet\Models\SubscriberSegment;
@ -36,6 +35,7 @@ use MailPoet\Referrals\ReferralDetector;
use MailPoet\Router\Endpoints\Track;
use MailPoet\Router\Router;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Subscribers\LinkTokens;
use MailPoet\Subscription\Captcha;
use MailPoet\Subscription\SubscriptionUrlFactory;
@ -827,7 +827,7 @@ class SendingQueueTest extends \MailPoetTest {
\ORM::raw_execute('TRUNCATE ' . ScheduledTaskSubscriber::$_table);
\ORM::raw_execute('TRUNCATE ' . Segment::$_table);
\ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
\ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);
\ORM::raw_execute('TRUNCATE ' . NewsletterLink::$_table);
\ORM::raw_execute('TRUNCATE ' . NewsletterPost::$_table);

View File

@ -8,10 +8,10 @@ use MailPoet\Config\Populator;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Mailer as MailerTask;
use MailPoet\Features\FeaturesController;
use MailPoet\Mailer\Mailer;
use MailPoet\Models\Setting;
use MailPoet\Models\Subscriber;
use MailPoet\Referrals\ReferralDetector;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Subscription\Captcha;
use MailPoet\WooCommerce\TransactionalEmails;
use MailPoet\WP\Functions as WPFunctions;
@ -141,7 +141,7 @@ class MailerTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
\ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);
}
}

View File

@ -16,9 +16,9 @@ use MailPoet\Models\NewsletterPost;
use MailPoet\Models\NewsletterSegment;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\SendingQueue;
use MailPoet\Models\Setting;
use MailPoet\Models\Subscriber;
use MailPoet\Router\Router;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Tasks\Sending as SendingTask;
use MailPoet\WP\Emoji;
use MailPoet\WP\Functions as WPFunctions;
@ -444,7 +444,7 @@ class NewsletterTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
\ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);
\ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);

View File

@ -9,7 +9,7 @@ use MailPoet\Cron\CronHelper;
use MailPoet\Cron\Workers\SimpleWorkerMockImplementation as MockSimpleWorker;
use MailPoet\DI\ContainerWrapper;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsRepository;
require_once('SimpleWorkerMockImplementation.php');
@ -322,7 +322,7 @@ class SimpleWorkerTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
}
}

View File

@ -4,8 +4,8 @@ namespace MailPoet\Test\Mailer;
use MailPoet\Mailer\Mailer;
use MailPoet\Mailer\MailerLog;
use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
class MailerLogTest extends \MailPoetTest {
@ -331,6 +331,6 @@ class MailerLogTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -3,8 +3,8 @@
namespace MailPoet\Test\Mailer;
use MailPoet\Mailer\Mailer;
use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
class MailerTest extends \MailPoetTest {
@ -195,6 +195,6 @@ class MailerTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -11,11 +11,11 @@ use MailPoet\Models\NewsletterOptionField;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\Segment;
use MailPoet\Models\SendingQueue;
use MailPoet\Models\Setting;
use MailPoet\Models\Subscriber;
use MailPoet\Models\SubscriberCustomField;
use MailPoet\Models\SubscriberSegment;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
class SubscriberTest extends \MailPoetTest {
@ -926,6 +926,6 @@ class SubscriberTest extends \MailPoetTest {
\ORM::raw_execute('TRUNCATE ' . NewsletterOption::$_table);
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
\ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -8,10 +8,10 @@ use MailPoet\Mailer\Mailer;
use MailPoet\Mailer\MailerError;
use MailPoet\Mailer\MailerLog;
use MailPoet\Models\Newsletter;
use MailPoet\Models\Setting;
use MailPoet\Services\AuthorizedEmailsController;
use MailPoet\Services\Bridge;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
class AuthorizedEmailsControllerTest extends \MailPoetTest {
@ -175,7 +175,7 @@ class AuthorizedEmailsControllerTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
\ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);
}
}

View File

@ -4,11 +4,11 @@ namespace MailPoet\Test\Services;
use Codeception\Util\Stub;
use MailPoet\Mailer\Mailer;
use MailPoet\Models\Setting;
use MailPoet\Services\Bridge;
use MailPoet\Services\Bridge\API;
use MailPoet\Services\Bridge\BridgeTestMockAPI as MockAPI;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
use MailPoet\WP\Functions as WPFunctions;
require_once('BridgeTestMockAPI.php');
@ -323,6 +323,6 @@ class BridgeTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -3,8 +3,9 @@
namespace MailPoet\Test\Settings;
use Codeception\Stub;
use MailPoet\Models\Setting;
use MailPoet\Entities\SettingEntity;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
class SettingsControllerTest extends \MailPoetTest {
@ -13,30 +14,31 @@ class SettingsControllerTest extends \MailPoetTest {
function _before() {
parent::_before();
$this->controller = SettingsController::getInstance();
$this->controller = $this->di_container->get(SettingsController::class);
}
function testItReturnsStoredValue() {
Setting::createOrUpdate(['name' => 'test_key', 'value' => 1]);
$this->createOrUpdateSetting('test_key', 1);
$this->controller->resetCache();
$this->assertEquals(1, $this->controller->get('test_key'));
}
function testItReturnsStoredNestedValue() {
Setting::createOrUpdate(['name' => 'test_key', 'value' => serialize(['sub_key' => 'value'])]);
$this->createOrUpdateSetting('test_key', serialize(['sub_key' => 'value']));
$this->assertEquals('value', $this->controller->get('test_key.sub_key'));
}
function testItReturnsNullForUnknownSetting() {
$this->assertEquals(null, $this->controller->get('test_key'));
$this->assertEquals(null, $this->controller->get('test_key.sub_key'));
Setting::createOrUpdate(['name' => 'test_key', 'value' => serialize(['sub_key' => 'value'])]);
$this->createOrUpdateSetting('test_key', serialize(['sub_key' => 'value']));
$this->assertEquals(null, $this->controller->get('test_key.wrong_subkey'));
}
function testItReturnsDefaultValueForUnknownSetting() {
$this->assertEquals('default', $this->controller->get('test_key', 'default'));
$this->assertEquals('default', $this->controller->get('test_key.sub_key', 'default'));
Setting::createOrUpdate(['name' => 'test_key', 'value' => serialize(['sub_key' => 'value'])]);
$this->createOrUpdateSetting('test_key', serialize(['sub_key' => 'value']));
$this->assertEquals('default', $this->controller->get('test_key.wrong_subkey', 'default'));
}
@ -44,13 +46,17 @@ class SettingsControllerTest extends \MailPoetTest {
$this->assertEquals(null, $this->controller->fetch('test_key'));
$this->assertEquals(null, $this->controller->fetch('test_key.sub_key'));
$this->assertEquals('default', $this->controller->fetch('test_key.wrong_subkey', 'default'));
Setting::createOrUpdate(['name' => 'test_key', 'value' => serialize(['sub_key' => 'value'])]);
$this->createOrUpdateSetting('test_key', serialize(['sub_key' => 'value']));
$this->assertEquals('default', $this->controller->get('test_key.sub_key', 'default'));
$this->assertEquals('value', $this->controller->fetch('test_key.sub_key', 'default'));
}
function testItReturnsDefaultValueAsFallback() {
$settings = Stub::make($this->controller, [
'settings_repository' => $this->make(SettingsRepository::class, [
'findOneByName' => null,
'findAll' => [],
]),
'getAllDefaults' => function () {
return ['default1' => ['default2' => 1]];
},
@ -62,8 +68,8 @@ class SettingsControllerTest extends \MailPoetTest {
}
function testItCanReturnAllSettings() {
Setting::createOrUpdate(['name' => 'test_key1', 'value' => 1]);
Setting::createOrUpdate(['name' => 'test_key2', 'value' => 2]);
$this->createOrUpdateSetting('test_key1', 1);
$this->createOrUpdateSetting('test_key2', 2);
$all = $this->controller->getAll();
$this->assertEquals(1, $all['test_key1']);
$this->assertEquals(2, $all['test_key2']);
@ -72,14 +78,14 @@ class SettingsControllerTest extends \MailPoetTest {
function testItCanSetAtTopLevel() {
$this->controller->set('test_key', 1);
$this->assertEquals(1, $this->controller->get('test_key'));
$db_value = Setting::where('name', 'test_key')->findOne();
$this->assertEquals(1, $db_value->value);
$db_value = $this->getSettingValue('test_key');
$this->assertEquals(1, $db_value);
}
function testItCanSetAtNestedLevel() {
$this->controller->set('test_key.key1.key2', 1);
$this->assertEquals(1, $this->controller->get('test_key.key1.key2'));
$db_value = unserialize(Setting::where('name', 'test_key')->findOne()->value);
$db_value = unserialize($this->getSettingValue('test_key'));
$this->assertEquals(1, $db_value['key1']['key2']);
}
@ -88,7 +94,7 @@ class SettingsControllerTest extends \MailPoetTest {
$this->assertEquals(1, $this->controller->get('test_key.key1.key2'));
$this->controller->set('test_key.key1.key2', null);
$this->assertNull(null, $this->controller->get('test_key.key1.key2'));
$db_value = unserialize(Setting::where('name', 'test_key')->findOne()->value);
$db_value = unserialize($this->getSettingValue('test_key'));
$this->assertNull($db_value['key1']['key2']);
}
@ -96,19 +102,33 @@ class SettingsControllerTest extends \MailPoetTest {
$this->controller->set('test_key.key1', 1);
$this->controller->set('test_key.key1.key2', 1);
$this->assertEquals(1, $this->controller->get('test_key.key1.key2'));
$db_value = unserialize(Setting::where('name', 'test_key')->findOne()->value);
$db_value = unserialize($this->getSettingValue('test_key'));
$this->assertEquals(1, $db_value['key1']['key2']);
}
function testItLoadsFromDbOnlyOnce() {
Setting::createOrUpdate(['name' => 'test_key', 'value' => 1]);
$this->createOrUpdateSetting('test_key', 1);
$this->assertEquals(1, $this->controller->get('test_key'));
Setting::createOrUpdate(['name' => 'test_key', 'value' => 2]);
$this->createOrUpdateSetting('test_key', 2);
$this->assertEquals(1, $this->controller->get('test_key'));
$this->assertEquals(true, true);
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$table_name = $this->entity_manager->getClassMetadata(SettingEntity::class)->getTableName();
$this->connection->executeUpdate('TRUNCATE ' . $table_name);
}
private function createOrUpdateSetting($name, $value) {
$table_name = $this->entity_manager->getClassMetadata(SettingEntity::class)->getTableName();
$this->connection->executeUpdate("
INSERT INTO $table_name (name, value) VALUES (?, ?)
ON DUPLICATE KEY UPDATE value = ?
", [$name, $value, $value]);
}
private function getSettingValue($name) {
$table_name = $this->entity_manager->getClassMetadata(SettingEntity::class)->getTableName();
return $this->connection->executeQuery("SELECT value FROM $table_name WHERE name = ?", [$name])->fetchColumn();
}
}

View File

@ -4,13 +4,14 @@ namespace MailPoet\Subscribers;
use Carbon\Carbon;
use MailPoet\Config\MP2Migrator;
use MailPoet\Entities\SettingEntity;
use MailPoet\Models\Newsletter;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\ScheduledTaskSubscriber;
use MailPoet\Models\SendingQueue;
use MailPoet\Models\Setting;
use MailPoet\Models\StatisticsOpens;
use MailPoet\Models\Subscriber;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Tasks\Sending;
class InactiveSubscribersControllerTest extends \MailPoetTest {
@ -25,7 +26,7 @@ class InactiveSubscribersControllerTest extends \MailPoetTest {
const PROCESS_BATCH_SIZE = 100;
function _before() {
$this->controller = new InactiveSubscribersController();
$this->controller = new InactiveSubscribersController($this->di_container->get(SettingsRepository::class));
\ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
\ORM::raw_execute('TRUNCATE ' . StatisticsOpens::$_table);
@ -153,10 +154,7 @@ class InactiveSubscribersControllerTest extends \MailPoetTest {
function testItDoesNotDeactivatesSubscribersWhenMP2MigrationHappenedWithinInterval() {
list($task) = $this->createCompletedSendingTaskWithOneOpen($completed_days_ago = 3);
$migration_complete_setting = Setting::createOrUpdate([
'name' => MP2Migrator::MIGRATION_COMPLETE_SETTING_KEY,
'created_at' => (new Carbon())->subDays(3),
]);
$this->createSetting(MP2Migrator::MIGRATION_COMPLETE_SETTING_KEY, true, (new Carbon())->subDays(3));
$subscriber = $this->createSubscriber('s1@email.com', $created_days_ago = 10);
$this->addSubcriberToTask($subscriber, $task);
@ -165,7 +163,7 @@ class InactiveSubscribersControllerTest extends \MailPoetTest {
expect($result)->equals(0);
$subscriber = Subscriber::findOne($subscriber->id);
expect($subscriber->status)->equals(Subscriber::STATUS_SUBSCRIBED);
$migration_complete_setting->delete();
$this->removeSetting(MP2Migrator::MIGRATION_COMPLETE_SETTING_KEY);
}
function testItActivatesSubscriberWhoRecentlyOpenedEmail() {
@ -217,10 +215,7 @@ class InactiveSubscribersControllerTest extends \MailPoetTest {
function testItActivatesSubscribersWhenMP2MigrationHappenedWithinInterval() {
list($task) = $this->createCompletedSendingTaskWithOneOpen($completed_days_ago = 3);
$migration_complete_setting = Setting::createOrUpdate([
'name' => MP2Migrator::MIGRATION_COMPLETE_SETTING_KEY,
'created_at' => (new Carbon())->subDays(3),
]);
$this->createSetting(MP2Migrator::MIGRATION_COMPLETE_SETTING_KEY, true, (new Carbon())->subDays(3));
$subscriber = $this->createSubscriber('s1@email.com', $created_days_ago = 10, Subscriber::STATUS_INACTIVE);
$this->addSubcriberToTask($subscriber, $task);
@ -229,7 +224,7 @@ class InactiveSubscribersControllerTest extends \MailPoetTest {
expect($result)->equals(1);
$subscriber = Subscriber::findOne($subscriber->id);
expect($subscriber->status)->equals(Subscriber::STATUS_SUBSCRIBED);
$migration_complete_setting->delete();
$this->removeSetting(MP2Migrator::MIGRATION_COMPLETE_SETTING_KEY);
}
function testItDoesReactivateInactiveSubscribers() {
@ -300,4 +295,17 @@ class InactiveSubscribersControllerTest extends \MailPoetTest {
$opened->created_at = (new Carbon())->subDays($days_ago)->toDateTimeString();
$opened->save();
}
private function createSetting($name, $value, $created_at) {
$table_name = $this->entity_manager->getClassMetadata(SettingEntity::class)->getTableName();
$this->connection->executeUpdate(
"INSERT INTO $table_name (name, value, created_at) VALUES (?, ?, ?)",
[$name, $value, $created_at]
);
}
private function removeSetting($name) {
$table_name = $this->entity_manager->getClassMetadata(SettingEntity::class)->getTableName();
$this->connection->executeUpdate("DELETE FROM $table_name WHERE name = ?", [$name]);
}
}

View File

@ -6,9 +6,9 @@ use Codeception\Stub;
use Codeception\Stub\Expected;
use MailPoet\Mailer\Mailer;
use MailPoet\Models\Segment;
use MailPoet\Models\Setting;
use MailPoet\Models\Subscriber;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
class NewSubscriberNotificationMailerTest extends \MailPoetTest {
@ -88,6 +88,6 @@ class NewSubscriberNotificationMailerTest extends \MailPoetTest {
}
function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -9,10 +9,10 @@ use MailPoet\Models\NewsletterOptionField;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\Segment;
use MailPoet\Models\SendingQueue;
use MailPoet\Models\Setting;
use MailPoet\Models\Subscriber;
use MailPoet\Models\SubscriberSegment;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
class SubscriberActionsTest extends \MailPoetTest {
@ -317,6 +317,6 @@ class SubscriberActionsTest extends \MailPoetTest {
\ORM::raw_execute('TRUNCATE ' . NewsletterOption::$_table);
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
\ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -10,9 +10,9 @@ use MailPoet\DI\ContainerWrapper;
use MailPoet\Form\Util\FieldNameObfuscator;
use MailPoet\Models\Form as FormModel;
use MailPoet\Models\Segment as SegmentModel;
use MailPoet\Models\Setting;
use MailPoet\Models\Subscriber as SubscriberModel;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Subscription\Form;
use MailPoet\Util\Security;
use MailPoet\Util\Url as UrlHelper;
@ -145,6 +145,6 @@ class FormTest extends \MailPoetTest {
\ORM::raw_execute('TRUNCATE ' . SegmentModel::$_table);
\ORM::raw_execute('TRUNCATE ' . FormModel::$_table);
\ORM::raw_execute('TRUNCATE ' . SubscriberModel::$_table);
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
}
}

View File

@ -5,11 +5,11 @@ namespace MailPoet\Test\Subscription;
use Codeception\Util\Stub;
use MailPoet\Config\Populator;
use MailPoet\Features\FeaturesController;
use MailPoet\Models\Setting;
use MailPoet\Models\Subscriber;
use MailPoet\Referrals\ReferralDetector;
use MailPoet\Router\Router;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Subscribers\LinkTokens;
use MailPoet\Subscription\Captcha;
use MailPoet\Subscription\SubscriptionUrlFactory;
@ -128,7 +128,7 @@ class UrlTest extends \MailPoetTest {
}
function _after() {
Setting::deleteMany();
$this->di_container->get(SettingsRepository::class)->truncate();
Subscriber::deleteMany();
}
}

View File

@ -2,9 +2,9 @@
namespace MailPoet\Util\Notices;
use MailPoet\Models\Setting;
use MailPoet\Models\Subscriber;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository;
use MailPoet\Test\DataFactories\Settings;
use MailPoet\Test\DataFactories\Subscriber as SubscriberFactory;
use MailPoet\WP\Functions as WPFunctions;
@ -59,7 +59,7 @@ class InactiveSubscribersNoticeTest extends \MailPoetTest {
}
private function cleanup() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table);
$this->di_container->get(SettingsRepository::class)->truncate();
\ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);
}

View File

@ -33,7 +33,6 @@ $models = [
'ScheduledTask',
'ScheduledTaskSubscriber',
'SendingQueue',
'Setting',
'Subscriber',
'SubscriberCustomField',
'SubscriberSegment',
@ -44,6 +43,10 @@ $models = [
'StatisticsUnsubscribes',
];
$entities = [
MailPoet\Entities\SettingEntity::class,
];
$connection = ContainerWrapper::getInstance(WP_DEBUG)->get(Connection::class);
$destroy = function($model) use ($connection) {
$class = new \ReflectionClass('\MailPoet\Models\\' . $model);
@ -52,6 +55,16 @@ $destroy = function($model) use ($connection) {
};
array_map($destroy, $models);
$entity_manager = ContainerWrapper::getInstance(WP_DEBUG)->get(EntityManager::class);
foreach ($entities as $entity) {
$table_name = $entity_manager->getClassMetadata($entity)->getTableName();
$connection->transactional(function(Connection $connection) use ($table_name) {
$connection->query('SET FOREIGN_KEY_CHECKS=0');
$connection->executeUpdate("TRUNCATE $table_name");
$connection->query('SET FOREIGN_KEY_CHECKS=1');
});
}
// save plugin version to avoid running migrations (that cause $GLOBALS serialization errors)
$settings = SettingsController::getInstance();
$settings->set('db_version', \MailPoet\Config\Env::$version);