changeCustomFields example

if (!$this->hasCustomFieldSupport(__METHOD__)) {
            return;
        }

        foreach ($values as $id => $value) {
            $element = $this->get($id);
            if ($element === null) {
                continue;
            }

            // @phpstan-ignore-next-line not possible to typehint or docblock the trait             $element->changeCustomFields($value);
        }
    }

    protected function getExpectedClass(): string
    {
        return Entity::class;
    }

    private function hasCustomFieldSupport(string $methodName): bool
    {
        $first = $this->first();
        
static::assertSame(['foo' => 'bar', 'bar' => 'foo']$entity->getCustomFieldsValues('foo', 'bar'));
    }

    public function testChangeCustomFields(): void
    {
        $entity = new MyTraitEntity('id', [
            'foo' => 'bar',
            'bar' => ['foo' => 'bar'],
        ]);

        $entity->changeCustomFields(['foo' => 'baz']);
        static::assertEquals('baz', $entity->getCustomFieldsValue('foo'));
        static::assertEquals(['foo' => 'bar']$entity->getCustomFieldsValue('bar'));

        $entity->changeCustomFields(['bar' => ['foo' => 'baz']]);
        static::assertEquals(['foo' => 'baz']$entity->getCustomFieldsValue('bar'));

        $entity->changeCustomFields(['foo' => 'baz', 'bar' => ['foo' => 'foo'], 'baz' => 'baz']);
        static::assertEquals(['foo' => 'baz', 'bar' => ['foo' => 'foo'], 'baz' => 'baz']$entity->getCustomFields());

        static::assertEquals(
            ['foo' => 'baz', 'bar' => ['foo' => 'foo'], 'baz' => 'baz'],
            
Home | Imprint | This part of the site doesn't use cookies.