/**
  * Tests that one change in a synchronized column triggers a change in all columns.
  */
 public function testDifferingSyncedColumns()
 {
     $sync_langcode = $this->langcodes[2];
     $unchanged_items = $this->unchangedFieldValues[$sync_langcode];
     $field_values = $this->unchangedFieldValues;
     for ($delta = 0; $delta < $this->cardinality; $delta++) {
         $index = $delta % 2 + 1;
         $field_values[$sync_langcode][$delta]['sync' . $index] .= '-updated';
     }
     $changed_items = $field_values[$sync_langcode];
     $this->synchronizer->synchronizeItems($field_values, $unchanged_items, $sync_langcode, $this->langcodes, $this->synchronized);
     $result = TRUE;
     foreach ($this->unchangedFieldValues as $langcode => $unchanged_items) {
         for ($delta = 0; $delta < $this->cardinality; $delta++) {
             foreach ($this->columns as $column) {
                 $result = $result && $field_values[$langcode][$delta][$column] == $changed_items[$delta][$column];
             }
         }
     }
     $this->assertTrue($result, 'Differing synced columns have been correctly synchronized.');
 }
 /**
  * Tests that one change in a synchronized column triggers a change in all columns.
  */
 public function testDifferingSyncedColumns()
 {
     $sync_langcode = $this->langcodes[2];
     $unchanged_items = $this->unchangedFieldValues[$sync_langcode];
     $field_values = $this->unchangedFieldValues;
     for ($delta = 0; $delta < $this->cardinality; $delta++) {
         $index = $delta % 2 + 1;
         $field_values[$sync_langcode][$delta]['sync' . $index] .= '-updated';
     }
     $changed_items = $field_values[$sync_langcode];
     $this->synchronizer->synchronizeItems($field_values, $unchanged_items, $sync_langcode, $this->langcodes, $this->synchronized);
     foreach ($this->unchangedFieldValues as $langcode => $unchanged_items) {
         for ($delta = 0; $delta < $this->cardinality; $delta++) {
             foreach ($this->columns as $column) {
                 // If the column is synchronized, the value should have been synced,
                 // for unsychronized columns, the value must not change.
                 $expected_value = in_array($column, $this->synchronized) ? $changed_items[$delta][$column] : $this->unchangedFieldValues[$langcode][$delta][$column];
                 $this->assertEqual($field_values[$langcode][$delta][$column], $expected_value, "Differing Item {$delta} column {$column} for langcode {$langcode} synced correctly");
             }
         }
     }
 }