Files
piratepoet/tests/DataFactories/DynamicSegment.php
Jan Jakeš 8c848cfa28 Convert property names to camel case
[MAILPOET-1796]
2020-01-14 15:22:42 +01:00

39 lines
1.1 KiB
PHP

<?php
namespace MailPoet\Test\DataFactories;
use MailPoet\DynamicSegments\Mappers\FormDataMapper;
use MailPoet\DynamicSegments\Persistence\Saver;
use MailPoet\Models\DynamicSegment as DynamicSegmentModel;
use MailPoet\Test\DataFactories\Segment;
class DynamicSegment extends Segment {
private $filterData = [];
public function withUserRoleFilter($role) {
$this->filterData['segmentType'] = 'userRole';
$this->filterData['wordpressRole'] = $role;
return $this;
}
/** @return DynamicSegmentModel */
public function create() {
$segment = DynamicSegmentModel::createOrUpdate($this->data);
if (!empty($this->filterData['segmentType'])) {
$segment = $this->createFilter($segment, $this->filterData);
}
return $segment;
}
private function createFilter(DynamicSegmentModel $segment, array $filterData) {
$data = array_merge($segment->asArray(), $filterData);
$mapper = new FormDataMapper();
$saver = new Saver();
$dynamicSegment = $mapper->mapDataToDB($data);
$saver->save($dynamicSegment);
return $dynamicSegment;
}
}