eZ\Publish\Core\Persistence\Legacy\Tests\Content\FieldHandlerTest::assertUpdateFieldsExistingLanguages PHP Method

assertUpdateFieldsExistingLanguages() public method

public assertUpdateFieldsExistingLanguages ( boolean $storageHandlerUpdatesFields = false )
$storageHandlerUpdatesFields boolean
    public function assertUpdateFieldsExistingLanguages($storageHandlerUpdatesFields = false)
    {
        $storageHandlerMock = $this->getStorageHandlerMock();
        $callNo = 0;
        $fieldValue = new FieldValue();
        $fieldsToCopy = array();
        foreach (array(1, 2, 3) as $fieldDefinitionId) {
            foreach (array('eng-US', 'eng-GB') as $languageIndex => $languageCode) {
                $field = new Field(array('id' => $fieldDefinitionId * 10 + $languageIndex + 1, 'fieldDefinitionId' => $fieldDefinitionId, 'type' => 'some-type', 'versionNo' => 1, 'value' => $fieldValue, 'languageCode' => $languageCode));
                // These fields are copied from main language
                if (($fieldDefinitionId == 2 || $fieldDefinitionId == 3) && $languageCode != 'eng-GB') {
                    $originalField = clone $field;
                    $originalField->id = $fieldDefinitionId * 10 + $languageIndex + 2;
                    $originalField->languageCode = 'eng-GB';
                    $fieldsToCopy[] = array('copy' => clone $field, 'original' => $originalField);
                } else {
                    $storageHandlerMock->expects($this->at($callNo++))->method('storeFieldData')->with($this->isInstanceOf('eZ\\Publish\\SPI\\Persistence\\Content\\VersionInfo'), $this->equalTo($field))->will($this->returnValue($storageHandlerUpdatesFields));
                }
            }
        }
        foreach ($fieldsToCopy as $fieldToCopy) {
            $storageHandlerMock->expects($this->at($callNo++))->method('copyFieldData')->with($this->isInstanceOf('eZ\\Publish\\SPI\\Persistence\\Content\\VersionInfo'), $this->equalTo($fieldToCopy['copy']), $this->equalTo($fieldToCopy['original']))->will($this->returnValue($storageHandlerUpdatesFields));
        }
    }