mirror of
https://gh.wpcy.net/https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2026-04-29 04:59:01 +08:00
60 lines
1.8 KiB
PHP
60 lines
1.8 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace WooCommerce\PayPalCommerce\Tests\Integration\Traits;
|
|
|
|
use WooCommerce\PayPalCommerce\Tests\Integration\Factories\ProductFactory;
|
|
use WooCommerce\PayPalCommerce\Tests\Integration\Factories\CouponFactory;
|
|
use WooCommerce\PayPalCommerce\Tests\Integration\Fixtures\ProductPresets;
|
|
use WooCommerce\PayPalCommerce\Tests\Integration\Fixtures\DiscountPresets;
|
|
|
|
trait CreateTestProducts
|
|
{
|
|
private ProductFactory $product_factory;
|
|
private CouponFactory $coupon_factory;
|
|
|
|
/**
|
|
* Initialize factories
|
|
*/
|
|
protected function initializeFactories(): void
|
|
{
|
|
$this->product_factory = new ProductFactory();
|
|
$this->coupon_factory = new CouponFactory();
|
|
}
|
|
|
|
/**
|
|
* Create all test products from presets
|
|
* @throws \WC_Data_Exception
|
|
*/
|
|
protected function createTestProducts(): void
|
|
{
|
|
if (!isset($this->product_factory)) {
|
|
$this->initializeFactories();
|
|
}
|
|
|
|
foreach (array_keys(ProductPresets::get()) as $preset_name) {
|
|
$preset = ProductPresets::get()[$preset_name];
|
|
// Only create if doesn't exist
|
|
if (!$this->product_factory->exists($preset['sku'])) {
|
|
$this->product_factory->createFromPreset($preset_name);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Create all test coupons from presets
|
|
*/
|
|
protected function createTestCoupons(): void
|
|
{
|
|
if (!isset($this->coupon_factory)) {
|
|
$this->initializeFactories();
|
|
}
|
|
|
|
foreach (DiscountPresets::get() as $preset_name => $preset) {
|
|
// Only create coupons (skip manual fees)
|
|
if (isset($preset['coupon_code']) && !$this->coupon_factory->exists($preset['coupon_code'])) {
|
|
$this->coupon_factory->createFromPreset($preset_name);
|
|
}
|
|
}
|
|
}
|
|
}
|