Skip deleted segments in SubscribersFinder [MAILPOET-2026]

This commit is contained in:
wxa
2019-05-09 17:43:50 +03:00
committed by M. Shull
parent 08737b5eef
commit 7493a11d66
2 changed files with 5 additions and 1 deletions

View File

@@ -21,6 +21,9 @@ class SubscribersFinder {
$result = array();
foreach ($newsletter_segments_ids as $segment_id) {
$segment = Segment::findOne($segment_id);
if (!$segment instanceof Segment) {
continue; // skip deleted segments
}
$result = array_merge($result, $this->findSubscribersInSegment($segment, $subscribers_to_process_ids));
}
return $this->unique($result);

View File

@@ -56,7 +56,8 @@ class SubscribersFinderTest extends \MailPoetTest {
function testFindSubscribersInSegmentInSegmentDefaultSegment() {
$finder = new SubscribersFinder();
$subscribers = $finder->findSubscribersInSegments(array($this->subscriber_2->id), array($this->segment_1->id));
$deleted_segment_id = 1000; // non-existent segment
$subscribers = $finder->findSubscribersInSegments(array($this->subscriber_2->id), array($this->segment_1->id, $deleted_segment_id));
expect($subscribers)->count(1);
expect($subscribers[$this->subscriber_2->id])->equals($this->subscriber_2->id);
}