Remove unused free plugin connector service
[MAILPOET-3077]
This commit is contained in:
committed by
Veljko V
parent
f6808404f2
commit
510921f27e
@ -131,7 +131,6 @@ class ContainerConfigurator implements IContainerConfigurator {
|
|||||||
$container->autowire(\MailPoet\PostEditorBlocks\SubscriptionFormBlock::class);
|
$container->autowire(\MailPoet\PostEditorBlocks\SubscriptionFormBlock::class);
|
||||||
// Dynamic segments
|
// Dynamic segments
|
||||||
$container->autowire(\MailPoet\DynamicSegments\FreePluginConnectors\AddToNewslettersSegments::class);
|
$container->autowire(\MailPoet\DynamicSegments\FreePluginConnectors\AddToNewslettersSegments::class);
|
||||||
$container->autowire(\MailPoet\DynamicSegments\FreePluginConnectors\AddToSubscribersFilters::class);
|
|
||||||
$container->autowire(\MailPoet\DynamicSegments\Mappers\DBMapper::class);
|
$container->autowire(\MailPoet\DynamicSegments\Mappers\DBMapper::class);
|
||||||
$container->autowire(\MailPoet\DynamicSegments\Persistence\Loading\Loader::class);
|
$container->autowire(\MailPoet\DynamicSegments\Persistence\Loading\Loader::class);
|
||||||
$container->autowire(\MailPoet\DynamicSegments\Persistence\Loading\SubscribersCount::class);
|
$container->autowire(\MailPoet\DynamicSegments\Persistence\Loading\SubscribersCount::class);
|
||||||
|
@ -1,66 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace MailPoet\DynamicSegments\FreePluginConnectors;
|
|
||||||
|
|
||||||
use MailPoet\DynamicSegments\Persistence\Loading\Loader;
|
|
||||||
use MailPoet\DynamicSegments\Persistence\Loading\SubscribersCount;
|
|
||||||
|
|
||||||
class AddToSubscribersFilters {
|
|
||||||
|
|
||||||
/** @var Loader */
|
|
||||||
private $loader;
|
|
||||||
|
|
||||||
/** @var SubscribersCount */
|
|
||||||
private $subscribersCountLoader;
|
|
||||||
|
|
||||||
public function __construct(Loader $loader, SubscribersCount $subscribersCountLoader) {
|
|
||||||
$this->loader = $loader;
|
|
||||||
$this->subscribersCountLoader = $subscribersCountLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param array $segmentFilters
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function add(array $segmentFilters) {
|
|
||||||
$dynamicSegments = $this->getListings();
|
|
||||||
return $this->sort(array_merge($segmentFilters, $dynamicSegments));
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getListings() {
|
|
||||||
$dynamicSegments = $this->loader->load();
|
|
||||||
return $this->buildResult($dynamicSegments);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function buildResult($dynamicSegments) {
|
|
||||||
$result = [];
|
|
||||||
foreach ($dynamicSegments as $dynamicSegment) {
|
|
||||||
$result[] = [
|
|
||||||
'value' => $dynamicSegment->id,
|
|
||||||
'label' => sprintf(
|
|
||||||
'%s (%s)',
|
|
||||||
$dynamicSegment->name,
|
|
||||||
number_format($this->subscribersCountLoader->getSubscribersCount($dynamicSegment))
|
|
||||||
),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function sort($segmentFilters) {
|
|
||||||
$specialSegmentFilters = [];
|
|
||||||
$segments = [];
|
|
||||||
foreach ($segmentFilters as $segmentFilter) {
|
|
||||||
if (is_numeric($segmentFilter['value'])) {
|
|
||||||
$segments[] = $segmentFilter;
|
|
||||||
} else {
|
|
||||||
$specialSegmentFilters[] = $segmentFilter;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
usort($segments, function ($a, $b) {
|
|
||||||
return strcasecmp($a["label"], $b["label"]);
|
|
||||||
});
|
|
||||||
return array_merge($specialSegmentFilters, $segments);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,100 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace MailPoet\DynamicSegments\FreePluginConnectors;
|
|
||||||
|
|
||||||
use Codeception\Stub;
|
|
||||||
use Codeception\Stub\Expected;
|
|
||||||
use MailPoet\Models\DynamicSegment;
|
|
||||||
use PHPUnit\Framework\MockObject\MockObject;
|
|
||||||
|
|
||||||
class AddToSubscribersFiltersTest extends \MailPoetTest {
|
|
||||||
public function testItReturnsOriginalArray() {
|
|
||||||
$originalSegment = [
|
|
||||||
'label' => 'segment1',
|
|
||||||
'value' => '',
|
|
||||||
];
|
|
||||||
|
|
||||||
$segmentLoader = Stub::makeEmpty('\MailPoet\DynamicSegments\Persistence\Loading\Loader', ['load' => Expected::once(function () {
|
|
||||||
return [];
|
|
||||||
})]);
|
|
||||||
|
|
||||||
$subscribersCountLoader = Stub::makeEmpty('\MailPoet\DynamicSegments\Persistence\Loading\SubscribersCount', ['getSubscribersCount' => Expected::never()]);
|
|
||||||
|
|
||||||
$filter = new AddToSubscribersFilters($segmentLoader, $subscribersCountLoader);
|
|
||||||
$result = $filter->add([$originalSegment]);
|
|
||||||
expect($result)->equals([$originalSegment]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testItAddsDynamicSegments() {
|
|
||||||
$dynamicSegment = DynamicSegment::create();
|
|
||||||
$dynamicSegment->hydrate([
|
|
||||||
'name' => 'segment2',
|
|
||||||
'description' => '',
|
|
||||||
'id' => 1,
|
|
||||||
]);
|
|
||||||
|
|
||||||
$segmentLoader = Stub::makeEmpty('\MailPoet\DynamicSegments\Persistence\Loading\Loader', ['load' => Expected::once(function () use ($dynamicSegment) {
|
|
||||||
return [$dynamicSegment];
|
|
||||||
})]);
|
|
||||||
|
|
||||||
/** @var \MailPoet\DynamicSegments\Persistence\Loading\SubscribersCount|MockObject $subscribersCountLoader */
|
|
||||||
$subscribersCountLoader = Stub::makeEmpty('\MailPoet\DynamicSegments\Persistence\Loading\SubscribersCount', ['getSubscribersCount']);
|
|
||||||
$subscribersCountLoader
|
|
||||||
->expects($this->once())
|
|
||||||
->method('getSubscribersCount')
|
|
||||||
->with($this->equalTo($dynamicSegment))
|
|
||||||
->will($this->returnValue(4));
|
|
||||||
|
|
||||||
$filter = new AddToSubscribersFilters($segmentLoader, $subscribersCountLoader);
|
|
||||||
$result = $filter->add([]);
|
|
||||||
|
|
||||||
expect($result)->count(1);
|
|
||||||
expect($result[0])->equals([
|
|
||||||
'label' => 'segment2 (4)',
|
|
||||||
'value' => 1,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testItSortsTheResult() {
|
|
||||||
$dynamicSegment1 = DynamicSegment::create();
|
|
||||||
$dynamicSegment1->hydrate([
|
|
||||||
'name' => 'segment b',
|
|
||||||
'description' => '',
|
|
||||||
'id' => '1',
|
|
||||||
]);
|
|
||||||
$dynamicSegment2 = DynamicSegment::create();
|
|
||||||
$dynamicSegment2->hydrate([
|
|
||||||
'name' => 'segment a',
|
|
||||||
'description' => '',
|
|
||||||
'id' => '2',
|
|
||||||
]);
|
|
||||||
|
|
||||||
$segmentLoader = Stub::makeEmpty(
|
|
||||||
'\MailPoet\DynamicSegments\Persistence\Loading\Loader',
|
|
||||||
[
|
|
||||||
'load' => Expected::once(function () use ($dynamicSegment1, $dynamicSegment2) {
|
|
||||||
return [$dynamicSegment1, $dynamicSegment2];
|
|
||||||
}),
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
/** @var \MailPoet\DynamicSegments\Persistence\Loading\SubscribersCount|MockObject $subscribersCountLoader */
|
|
||||||
$subscribersCountLoader = Stub::makeEmpty('\MailPoet\DynamicSegments\Persistence\Loading\SubscribersCount', ['getSubscribersCount']);
|
|
||||||
$subscribersCountLoader
|
|
||||||
->expects($this->exactly(2))
|
|
||||||
->method('getSubscribersCount')
|
|
||||||
->will($this->returnValue(4));
|
|
||||||
|
|
||||||
$filter = new AddToSubscribersFilters($segmentLoader, $subscribersCountLoader);
|
|
||||||
$result = $filter->add([
|
|
||||||
['value' => '', 'label' => 'Special segment filter'],
|
|
||||||
['value' => '3', 'label' => 'segment c'],
|
|
||||||
]);
|
|
||||||
|
|
||||||
expect($result)->count(4);
|
|
||||||
expect($result[0]['value'])->equals('');
|
|
||||||
expect($result[1]['value'])->equals('2');
|
|
||||||
expect($result[2]['value'])->equals('1');
|
|
||||||
expect($result[3]['value'])->equals('3');
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user