eZ\Publish\Core\Repository\Tests\Service\Integration\ContentBase::assertCreateContentStructValuesFields PHP Метод

assertCreateContentStructValuesFields() защищенный Метод

Asserts that fields are valid after Content creation.
    protected function assertCreateContentStructValuesFields(array $data)
    {
        /** @var $contentDraft \eZ\Publish\API\Repository\Values\Content\Content */
        $contentDraft = $data['actual'];
        /** @var $contentCreate \eZ\Publish\API\Repository\Values\Content\ContentCreateStruct */
        $contentCreate = $data['expected'];
        /** @var $contentType \eZ\Publish\API\Repository\Values\ContentType\ContentType */
        $contentType = $data['contentType'];
        $createdFields = $contentDraft->getFields();
        $createdInLanguageCodes = $this->getLanguageCodesFromFields($contentCreate->fields, $contentCreate->mainLanguageCode);
        $this->assertCount(count($contentType->fieldDefinitions) * count($createdInLanguageCodes), $createdFields, 'Number of created fields does not match number of content type field definitions multiplied by number of languages the content is created in');
        // Check field values
        $structFields = array();
        foreach ($contentCreate->fields as $field) {
            $structFields[$field->fieldDefIdentifier][$field->languageCode] = $field;
        }
        foreach ($contentType->fieldDefinitions as $fieldDefinition) {
            $this->assertArrayHasKey($fieldDefinition->identifier, $contentDraft->fields, "Field values are missing for field definition '{$fieldDefinition->identifier}'");
            foreach ($createdInLanguageCodes as $languageCode) {
                $this->assertArrayHasKey($languageCode, $contentDraft->fields[$fieldDefinition->identifier], "Field value is missing for field definition '{$fieldDefinition->identifier}' in language '{$languageCode}'");
                // If field is not set in create struct, it should have default value
                $valueLanguageCode = $fieldDefinition->isTranslatable ? $languageCode : $contentCreate->mainLanguageCode;
                if (isset($structFields[$fieldDefinition->identifier][$valueLanguageCode])) {
                    $this->assertEquals($structFields[$fieldDefinition->identifier][$valueLanguageCode]->value, $contentDraft->fields[$fieldDefinition->identifier][$languageCode], "Field value for field definition '{$fieldDefinition->identifier}' in language '{$languageCode}' is not equal to given struct field value");
                } else {
                    $this->assertEquals($fieldDefinition->defaultValue, $contentDraft->fields[$fieldDefinition->identifier][$languageCode], "Field value for field definition '{$fieldDefinition->identifier}' in language '{$languageCode}' is not equal to default value");
                }
            }
        }
    }
ContentBase