Unit tests for listing specific methods

- small fixes/optimization in Subscriber model
- added test for search and group in Subscriber
- added test for search in Newsletter
This commit is contained in:
Jonathan Labreuille
2015-09-03 13:47:39 +02:00
parent cf322ec3c2
commit d89f43dbe5
3 changed files with 59 additions and 4 deletions

View File

@ -4,16 +4,29 @@ use MailPoet\Models\Subscriber;
class SubscriberCest {
function _before() {
$this->before_time = time();
$this->data = array(
'first_name' => 'John',
'last_name' => 'Mailer',
'email' => 'john@mailpoet.com'
'email' => 'jo@mailpoet.com'
);
$this->subscriber = Subscriber::create();
$this->subscriber->hydrate($this->data);
$this->saved = $this->subscriber->save();
$subscribed = Subscriber::create();
$subscribed->hydrate(array(
'email' => 'marco@mailpoet.com',
'status' => 'subscribed'
));
$subscribed->save();
$unsubscribed = Subscriber::create();
$unsubscribed->hydrate(array(
'email' => 'marco@mailpoet.com',
'status' => 'unsubscribed'
));
$unsubscribed->save();
}
function itCanBeCreated() {
@ -64,6 +77,34 @@ class SubscriberCest {
expect($subscriber_updated->status)->equals('subscribed');
}
function itHasASearchFilter() {
$subscriber = Subscriber::filter('search', 'john')->findOne();
expect($subscriber->first_name)->equals($this->data['first_name']);
$subscriber = Subscriber::filter('search', 'mailer')->findOne();
expect($subscriber->last_name)->equals($this->data['last_name']);
$subscriber = Subscriber::filter('search', 'mailpoet')->findOne();
expect($subscriber->email)->equals($this->data['email']);
}
function itHasAGroupFilter() {
$subscribers = Subscriber::filter('group', 'unconfirmed')->findMany();
foreach($subscribers as $subscriber) {
expect($subscriber->status)->equals('unconfirmed');
}
$subscribers = Subscriber::filter('group', 'subscribed')->findMany();
foreach($subscribers as $subscriber) {
expect($subscriber->status)->equals('subscribed');
}
$subscribers = Subscriber::filter('group', 'unsubscribed')->findMany();
foreach($subscribers as $subscriber) {
expect($subscriber->status)->equals('unsubscribed');
}
}
function emailMustBeUnique() {
$conflict_subscriber = Subscriber::create();
$conflict_subscriber->hydrate($this->data);