From 815461a8510cada54dcc6d4a56bed6c60ff9d534 Mon Sep 17 00:00:00 2001 From: Alexey Stoletniy Date: Thu, 19 Jan 2017 17:37:01 +0300 Subject: [PATCH] Add a unit test [MAILPOET-789] --- tests/unit/Models/SubscriberTest.php | 47 ++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/tests/unit/Models/SubscriberTest.php b/tests/unit/Models/SubscriberTest.php index c1dcff2422..ba778debb6 100644 --- a/tests/unit/Models/SubscriberTest.php +++ b/tests/unit/Models/SubscriberTest.php @@ -141,6 +141,53 @@ class SubscriberTest extends MailPoetTest { } } + function testItHasSegmentFilter() { + // remove all subscribers + Subscriber::deleteMany(); + + $subscriber = Subscriber::create(); + $subscriber->hydrate(Fixtures::get('subscriber_template')); + $subscriber->save(); + + $segment = Segment::createOrUpdate(array( + 'name' => 'Test segment' + )); + + // not yet subscribed + $subscribers = Subscriber::filter('filterBy', array('segment' => 'none')) + ->findMany(); + expect($subscribers)->count(1); + $subscribers = Subscriber::filter('filterBy', array('segment' => $segment->id)) + ->findMany(); + expect($subscribers)->count(0); + + // subscribed to a segment + SubscriberSegment::subscribeToSegments( + $subscriber, + array($segment->id) + ); + + $subscribers = Subscriber::filter('filterBy', array('segment' => 'none')) + ->findMany(); + expect($subscribers)->count(0); + $subscribers = Subscriber::filter('filterBy', array('segment' => $segment->id)) + ->findMany(); + expect($subscribers)->count(1); + + // unsubscribed + SubscriberSegment::unsubscribeFromSegments( + $subscriber, + array($segment->id) + ); + + $subscribers = Subscriber::filter('filterBy', array('segment' => 'none')) + ->findMany(); + expect($subscribers)->count(1); + $subscribers = Subscriber::filter('filterBy', array('segment' => $segment->id)) + ->findMany(); + expect($subscribers)->count(0); + } + function testItCanHaveSegment() { $segment = Segment::createOrUpdate(array( 'name' => 'some name'