LineItemCustomFieldRule example

$this->getContainer()->get('custom_field.repository')->create([
            $customField,
            array_merge($customField['name' => self::CUSTOM_FIELD_B]),
            array_merge($customField['name' => self::CUSTOM_FIELD_C]),
        ], Context::createDefaultContext());
    }

    private function createRule(): void
    {
        $conditionA = $conditionB = [
            'type' => (new LineItemCustomFieldRule())->getName(),
            'value' => [
                'renderedField' => [
                    'type' => 'text',
                    'name' => self::CUSTOM_FIELD_A,
                ],
                'selectedField' => 'foo',
                'selectedFieldSet' => 'bar',
                'renderedFieldValue' => 'foo',
                'operator' => LineItemCustomFieldRule::OPERATOR_EQ,
            ],
        ];
        

    use CartRuleHelperTrait;

    private const CUSTOM_FIELD_NAME = 'custom_test';

    private LineItemCustomFieldRule $rule;

    private SalesChannelContext $salesChannelContext;

    protected function setUp(): void
    {
        $this->rule = new LineItemCustomFieldRule();

        $this->salesChannelContext = $this->getMockBuilder(SalesChannelContext::class)->disableOriginalConstructor()->getMock();
        $this->salesChannelContext->method('getContext')->willReturn(Context::createDefaultContext());
    }

    public function testGetName(): void
    {
        static::assertSame('cartLineItemCustomField', $this->rule->getName());
    }

    public function testGetConstraints(): void
    {
yield 'Test percentage price definition' => [
            new PercentagePriceDefinition(-20, $rule),
        ];

        yield 'Test currency price definition' => [
            new CurrencyPriceDefinition(new PriceCollection([
                new Price(Defaults::CURRENCY, 100, 200, false),
                new Price(Uuid::randomHex(), 200, 300, true),
            ])$rule),
        ];

        $customFieldsRule = new LineItemCustomFieldRule(
            LineItemCustomFieldRule::OPERATOR_EQ,
            ['name' => 'foobar', 'type' => CustomFieldTypes::BOOL]
        );
        $customFieldsRule->assign([
            'selectedField' => 'foo',
            'selectedFieldSet' => 'bar',
            'renderedFieldValue' => null,
        ]);

        $rule = new AndRule([
            new OrRule([
                
Home | Imprint | This part of the site doesn't use cookies.