Files
piratepoet/tests/unit/DynamicSegments/RequirementsCheckerTest.php
2020-01-28 20:18:39 +00:00

51 lines
1.8 KiB
PHP

<?php
namespace MailPoet\DynamicSegments;
use MailPoet\DynamicSegments\Filters\EmailAction;
use MailPoet\DynamicSegments\Filters\WooCommerceCategory;
use MailPoet\Models\DynamicSegment;
use MailPoet\WooCommerce\Helper;
use PHPUnit\Framework\MockObject\MockObject;
class RequirementsCheckerTest extends \MailPoetUnitTest {
/** @var Helper|MockObject */
private $woocommerceHelper;
/** @var RequirementsChecker */
private $requirementsChecker;
public function _before() {
parent::_before();
if (!defined('MP_SEGMENTS_TABLE')) define('MP_SEGMENTS_TABLE', '');
$this->woocommerceHelper = $this
->getMockBuilder(Helper::class)
->setMethods(['isWooCommerceActive'])
->getMock();
$this->requirementsChecker = new RequirementsChecker($this->woocommerceHelper);
}
public function testShouldntBlockSegmentIfWooCommerceIsActive() {
$this->woocommerceHelper->method('isWooCommerceActive')->willReturn(true);
$segment = DynamicSegment::create();
$segment->setFilters([new WooCommerceCategory(1)]);
expect($this->requirementsChecker->shouldSkipSegment($segment))->false();
}
public function testShouldBlockWooCommerceSegmentIfWooCommerceIsInactive() {
$this->woocommerceHelper->method('isWooCommerceActive')->willReturn(false);
$segment = DynamicSegment::create();
$segment->setFilters([new WooCommerceCategory(1)]);
expect($this->requirementsChecker->shouldSkipSegment($segment))->true();
}
public function testShouldntBlockNonWooCommerceSegmentIfWooCommerceIsInactive() {
$this->woocommerceHelper->method('isWooCommerceActive')->willReturn(false);
$segment = DynamicSegment::create();
$segment->setFilters([new EmailAction(EmailAction::ACTION_OPENED, 2)]);
expect($this->requirementsChecker->shouldSkipSegment($segment))->false();
}
}