Move dynamic segments from Premium plugin
[MAILPOET-2382]
This commit is contained in:
committed by
Jack Kitterhing
parent
0af9f09f50
commit
70a89b7939
@@ -0,0 +1,108 @@
|
||||
<?php
|
||||
|
||||
namespace MailPoet\Premium\DynamicSegments\FreePluginConnectors;
|
||||
|
||||
use Codeception\Util\Stub;
|
||||
use MailPoet\Models\Segment;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Premium\Models\DynamicSegment;
|
||||
|
||||
class SendingNewslettersSubscribersFinderTest extends \MailPoetTest {
|
||||
|
||||
/** @var \MailPoet\Premium\DynamicSegments\Persistence\Loading\SingleSegmentLoader */
|
||||
private $single_segment_loader;
|
||||
|
||||
/** @var \MailPoet\Premium\DynamicSegments\Persistence\Loading\SubscribersIds */
|
||||
private $subscribers_ids_loader;
|
||||
|
||||
/** @var SendingNewslettersSubscribersFinder */
|
||||
private $subscribers_in_segments_finder;
|
||||
|
||||
function _before() {
|
||||
$this->single_segment_loader = Stub::makeEmpty('\MailPoet\Premium\DynamicSegments\Persistence\Loading\SingleSegmentLoader');
|
||||
$this->subscribers_ids_loader = Stub::makeEmpty('\MailPoet\Premium\DynamicSegments\Persistence\Loading\SubscribersIds');
|
||||
$this->subscribers_in_segments_finder = new SendingNewslettersSubscribersFinder($this->single_segment_loader, $this->subscribers_ids_loader);
|
||||
}
|
||||
|
||||
function testFindSubscribersInSegmentReturnsEmptyIfNotDynamic() {
|
||||
$this->single_segment_loader
|
||||
->expects($this->never())
|
||||
->method('load');
|
||||
$this->subscribers_ids_loader
|
||||
->expects($this->never())
|
||||
->method('load');
|
||||
$segment = Segment::create();
|
||||
$segment->type = Segment::TYPE_DEFAULT;
|
||||
$segment->id = 3;
|
||||
$result = $this->subscribers_in_segments_finder->findSubscribersInSegment($segment, []);
|
||||
expect($result)->count(0);
|
||||
}
|
||||
|
||||
function testFindSubscribersInSegmentReturnsSubscribers() {
|
||||
$dynamic_segment = DynamicSegment::create();
|
||||
$dynamic_segment->hydrate([
|
||||
'name' => 'segment 1',
|
||||
'description' => '',
|
||||
]);
|
||||
$ids = [1, 2, 3];
|
||||
$this->single_segment_loader
|
||||
->expects($this->once())
|
||||
->method('load')
|
||||
->with($this->equalTo(3))
|
||||
->will($this->returnValue($dynamic_segment));
|
||||
$this->subscribers_ids_loader
|
||||
->expects($this->once())
|
||||
->method('load')
|
||||
->with($this->equalTo($dynamic_segment), $ids)
|
||||
->will($this->returnValue([new Subscriber()]));
|
||||
$segment = DynamicSegment::create();
|
||||
$segment->type = DynamicSegment::TYPE_DYNAMIC;
|
||||
$segment->id = 3;
|
||||
$result = $this->subscribers_in_segments_finder->findSubscribersInSegment($segment, $ids);
|
||||
expect($result)->count(1);
|
||||
}
|
||||
|
||||
|
||||
function testGetSubscriberIdsInSegmentReturnsEmptyIfNotDynamic() {
|
||||
$this->single_segment_loader
|
||||
->expects($this->never())
|
||||
->method('load');
|
||||
$this->subscribers_ids_loader
|
||||
->expects($this->never())
|
||||
->method('load');
|
||||
$segment = DynamicSegment::create();
|
||||
$segment->type = DynamicSegment::TYPE_DEFAULT;
|
||||
$result = $this->subscribers_in_segments_finder->getSubscriberIdsInSegment($segment);
|
||||
expect($result)->count(0);
|
||||
}
|
||||
|
||||
function testGetSubscriberIdsInSegmentReturnsSubscribers() {
|
||||
$dynamic_segment = DynamicSegment::create();
|
||||
$dynamic_segment->hydrate([
|
||||
'name' => 'segment 2',
|
||||
'description' => '',
|
||||
]);
|
||||
$subscriber1 = Subscriber::create();
|
||||
$subscriber1->hydrate(['id' => 1]);
|
||||
$subscriber2 = Subscriber::create();
|
||||
$subscriber2->hydrate(['id' => 2]);
|
||||
$this->single_segment_loader
|
||||
->expects($this->once())
|
||||
->method('load')
|
||||
->with($this->equalTo(3))
|
||||
->will($this->returnValue($dynamic_segment));
|
||||
$this->subscribers_ids_loader
|
||||
->expects($this->once())
|
||||
->method('load')
|
||||
->with($this->equalTo($dynamic_segment))
|
||||
->will($this->returnValue([$subscriber1, $subscriber2]));
|
||||
$segment = DynamicSegment::create();
|
||||
$segment->type = DynamicSegment::TYPE_DYNAMIC;
|
||||
$segment->id = 3;
|
||||
$result = $this->subscribers_in_segments_finder->getSubscriberIdsInSegment($segment);
|
||||
expect($result)->count(2);
|
||||
expect($result[0]['id'])->equals(1);
|
||||
expect($result[1]['id'])->equals(2);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user