Fix serialization errors in integration tests (models are not serializable)

[MAILPOET-2501]
This commit is contained in:
Jan Jakeš
2019-10-24 15:59:04 +02:00
committed by Jack Kitterhing
parent f16d97fa5a
commit 17ec220960

View File

@@ -39,7 +39,6 @@ class Populator {
public $prefix; public $prefix;
public $models; public $models;
public $templates; public $templates;
private $default_segment;
/** @var SettingsController */ /** @var SettingsController */
private $settings; private $settings;
/** @var WPFunctions */ /** @var WPFunctions */
@@ -158,8 +157,8 @@ class Populator {
array_map([$this, 'populate'], $this->models); array_map([$this, 'populate'], $this->models);
$this->createDefaultSegments(); $default_segment = $this->createDefaultSegment();
$this->createDefaultForm(); $this->createDefaultForm($default_segment);
$this->createDefaultSettings(); $this->createDefaultSettings();
$this->createDefaultUsersFlags(); $this->createDefaultUsersFlags();
$this->createMailPoetPage(); $this->createMailPoetPage();
@@ -337,7 +336,7 @@ class Populator {
$user_flags_repository->flush(); $user_flags_repository->flush();
} }
private function createDefaultSegments() { private function createDefaultSegment() {
// WP Users segment // WP Users segment
Segment::getWPSegment(); Segment::getWPSegment();
// WooCommerce customers segment // WooCommerce customers segment
@@ -348,7 +347,7 @@ class Populator {
// Default segment // Default segment
if (Segment::where('type', 'default')->count() === 0) { if (Segment::where('type', 'default')->count() === 0) {
$this->default_segment = Segment::create(); $default_segment = Segment::create();
$new_list = [ $new_list = [
'name' => $this->wp->__('My First List', 'mailpoet'), 'name' => $this->wp->__('My First List', 'mailpoet'),
'description' => 'description' =>
@@ -357,21 +356,21 @@ class Populator {
if ($this->flags_controller->isSupported(FeaturesController::NEW_DEFAULT_LIST_NAME)) { if ($this->flags_controller->isSupported(FeaturesController::NEW_DEFAULT_LIST_NAME)) {
$new_list['name'] = $this->wp->__('Newsletter mailing list', 'mailpoet'); $new_list['name'] = $this->wp->__('Newsletter mailing list', 'mailpoet');
} }
$this->default_segment->hydrate($new_list); $default_segment->hydrate($new_list);
$this->default_segment->save(); $default_segment->save();
} }
} }
private function createDefaultForm() { private function createDefaultForm($default_segment) {
if (Form::count() === 0) { if (Form::count() === 0) {
$factory = new DefaultForm(); $factory = new DefaultForm();
if (!$this->default_segment) { if (!$default_segment) {
$this->default_segment = Segment::where('type', 'default')->orderByAsc('id')->limit(1)->findOne(); $default_segment = Segment::where('type', 'default')->orderByAsc('id')->limit(1)->findOne();
} }
Form::createOrUpdate([ Form::createOrUpdate([
'name' => $factory->getName(), 'name' => $factory->getName(),
'body' => serialize($factory->getBody()), 'body' => serialize($factory->getBody()),
'settings' => serialize($factory->getSettings($this->default_segment)), 'settings' => serialize($factory->getSettings($default_segment)),
'styles' => $factory->getStyles(), 'styles' => $factory->getStyles(),
]); ]);
} }