diff --git a/lib/DI/ContainerConfigurator.php b/lib/DI/ContainerConfigurator.php index c2a4e2dbe7..f3564ac29a 100644 --- a/lib/DI/ContainerConfigurator.php +++ b/lib/DI/ContainerConfigurator.php @@ -131,7 +131,6 @@ class ContainerConfigurator implements IContainerConfigurator { $container->autowire(\MailPoet\PostEditorBlocks\SubscriptionFormBlock::class); // Dynamic segments $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\Persistence\Loading\Loader::class); $container->autowire(\MailPoet\DynamicSegments\Persistence\Loading\SubscribersCount::class); diff --git a/lib/DynamicSegments/FreePluginConnectors/AddToSubscribersFilters.php b/lib/DynamicSegments/FreePluginConnectors/AddToSubscribersFilters.php deleted file mode 100644 index 3eddbb6afd..0000000000 --- a/lib/DynamicSegments/FreePluginConnectors/AddToSubscribersFilters.php +++ /dev/null @@ -1,66 +0,0 @@ -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); - } -} diff --git a/tests/integration/DynamicSegments/FreePluginConnectors/AddToSubscribersFiltersTest.php b/tests/integration/DynamicSegments/FreePluginConnectors/AddToSubscribersFiltersTest.php deleted file mode 100644 index 1be6f7ae57..0000000000 --- a/tests/integration/DynamicSegments/FreePluginConnectors/AddToSubscribersFiltersTest.php +++ /dev/null @@ -1,100 +0,0 @@ - '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'); - } -}