Use DI in abandoned cart event

[MAILPOET-3924]
This commit is contained in:
Jan Jakes
2021-12-09 17:29:59 +01:00
committed by Veljko V
parent b2f76548c0
commit 191f09bbfd
3 changed files with 24 additions and 7 deletions

View File

@@ -29,12 +29,18 @@ class AbandonedCart {
/** @var AutomaticEmailScheduler */
private $scheduler;
public function __construct() {
$this->wp = WPFunctions::get();
$this->wooCommerceHelper = new WooCommerceHelper();
$this->cookies = new Cookies();
$this->pageVisitTracker = new AbandonedCartPageVisitTracker($this->wp, $this->wooCommerceHelper, $this->cookies);
$this->scheduler = new AutomaticEmailScheduler();
public function __construct(
WPFunctions $wp,
WooCommerceHelper $wooCommerceHelper,
Cookies $cookies,
AbandonedCartPageVisitTracker $pageVisitTracker,
AutomaticEmailScheduler $scheduler
) {
$this->wp = $wp;
$this->wooCommerceHelper = $wooCommerceHelper;
$this->cookies = $cookies;
$this->pageVisitTracker = $pageVisitTracker;
$this->scheduler = $scheduler;
}
public function getEventDetails() {

View File

@@ -96,6 +96,7 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\AutomaticEmails\WooCommerce\WooCommerce::class)->setPublic(true);
$container->autowire(\MailPoet\AutomaticEmails\WooCommerce\WooCommerceEventFactory::class)->setPublic(true);
$container->autowire(\MailPoet\AutomaticEmails\WooCommerce\Events\AbandonedCart::class)->setPublic(true);
$container->autowire(\MailPoet\AutomaticEmails\WooCommerce\Events\AbandonedCartPageVisitTracker::class)->setPublic(true);
$container->autowire(\MailPoet\AutomaticEmails\WooCommerce\Events\FirstPurchase::class)->setPublic(true);
$container->autowire(\MailPoet\AutomaticEmails\WooCommerce\Events\PurchasedInCategory::class)->setPublic(true);
$container->autowire(\MailPoet\AutomaticEmails\WooCommerce\Events\PurchasedProduct::class)->setPublic(true);
@@ -374,6 +375,7 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\Newsletter\Shortcodes\Categories\Newsletter::class)->setPublic(true);
$container->autowire(\MailPoet\Newsletter\Shortcodes\Categories\Subscriber::class)->setPublic(true);
$container->autowire(\MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository::class)->setPublic(true);
$container->autowire(\MailPoet\Newsletter\Scheduler\AutomaticEmailScheduler::class)->setPublic(true);
$container->autowire(\MailPoet\Newsletter\Scheduler\WelcomeScheduler::class)->setPublic(true);
$container->autowire(\MailPoet\Newsletter\Scheduler\PostNotificationScheduler::class)->setPublic(true);
$container->autowire(\MailPoet\Newsletter\Scheduler\ReEngagementScheduler::class)->setPublic(true);

View File

@@ -77,7 +77,16 @@ class AbandonedCartTest extends \MailPoetTest {
}
public function testItGetsEventDetails() {
$event = new AbandonedCart();
$wp = new WPFunctions();
$wcHelper = new WooCommerceHelper();
$cookies = new Cookies();
$event = new AbandonedCart(
$wp,
$wcHelper,
$cookies,
new AbandonedCartPageVisitTracker($wp, $wcHelper, $cookies),
new AutomaticEmailScheduler($wp)
);
$result = $event->getEventDetails();
expect($result)->notEmpty();
expect($result['slug'])->equals(AbandonedCart::SLUG);