* SPDX-License-Identifier: MIT */ declare(strict_types=1); namespace Respect\Validation\Message\StandardFormatter; use Respect\Validation\Result; use Respect\Validation\Test\Builders\ResultBuilder; trait FullProvider { use ResultCreator; /** @return array}> */ public static function provideForFull(): array { return [ 'without children, without templates' => [ (new ResultBuilder())->template('Message')->build(), '- Message', ], 'without children, with templates' => [ (new ResultBuilder())->id('foo')->build(), '- Custom message', ['foo' => 'Custom message'], ], 'with single-level children, without templates' => [ self::singleLevelChildrenMessage(), << [ self::singleLevelChildrenMessage(), << [ '__root__' => 'Parent custom', '1st' => '1st custom', '2nd' => '2nd custom', '3rd' => '3rd custom', ], ], ], 'with single-level children, with partial templates' => [ self::singleLevelChildrenMessage(), << [ '1st' => '1st custom', '3rd' => '3rd custom', ], ], ], 'with single-level children, with overwritten template' => [ self::singleLevelChildrenMessage(), '- Parent custom', [ 'parent' => 'Parent custom', ], ], 'with single-nested child, without templates' => [ self::multiLevelChildrenWithSingleNestedChildMessage(), << [ self::multiLevelChildrenWithSingleNestedChildMessage(), << 1st custom - 3rd custom MESSAGE, [ 'parent' => [ '__root__' => 'Parent custom', '1st' => '1st custom', '2nd' => [ '2nd_1st' => '2nd > 1st custom', ], '3rd' => '3rd custom', ], ], ], 'with single-nested child, with partial templates' => [ self::multiLevelChildrenWithSingleNestedChildMessage(), << [ '__root__' => 'Parent custom', '1st' => '1st custom', '2nd' => [ '2nd_2nd' => '2nd > 2nd not shown', ], '3rd' => '3rd custom', ], ], ], 'with single-nested child, with overwritten templates' => [ self::multiLevelChildrenWithSingleNestedChildMessage(), << [ '__root__' => 'Parent custom', '1st' => '1st custom', '2nd' => '2nd custom', '3rd' => '3rd custom', ], ], ], 'with multi-nested children, without templates' => [ self::multiLevelChildrenWithMultiNestedChildrenMessage(), << [ self::multiLevelChildrenWithMultiNestedChildrenMessage(), << 1st custom - 2nd > 2nd custom - 3rd custom MESSAGE, [ 'parent' => [ '__root__' => 'Parent custom', '1st' => '1st custom', '2nd' => [ '__root__' => '2nd custom', '2nd_1st' => '2nd > 1st custom', '2nd_2nd' => '2nd > 2nd custom', ], '3rd' => '3rd custom', ], ], ], 'with multi-nested children, with partial templates' => [ self::multiLevelChildrenWithMultiNestedChildrenMessage(), << 2nd custom - 3rd custom MESSAGE, [ 'parent' => [ '__root__' => 'Parent custom', '1st' => '1st custom', '2nd' => [ '2nd_2nd' => '2nd > 2nd custom', ], '3rd' => '3rd custom', ], ], ], 'with multi-nested children, with overwritten templates' => [ self::multiLevelChildrenWithMultiNestedChildrenMessage(), << [ '__root__' => 'Parent custom', '1st' => '1st custom', '2nd' => '2nd custom', '3rd' => '3rd custom', ], ], ], 'with children with the same id, without templates' => [ self::singleLevelChildrenWithSameId(), << [ self::singleLevelChildrenWithSameId(), << [ '__root__' => 'Parent custom', 'child.1' => '1st custom', 'child.2' => '2nd custom', 'child.3' => '3rd custom', ], ], ], 'with children with the same id, with partial templates' => [ self::singleLevelChildrenWithSameId(), << [ 'child.1' => '1st custom', 'child.2' => '2nd custom', ], ], ], ]; } }