/**
  * @covers ::into
  * @dataProvider provideNonIndexableNorAssignable
  */
 public function testOursMustBeIndexableOrAssignable($ours)
 {
     // ----------------------------------------------------------------
     // setup your test
     $theirs = [];
     // ----------------------------------------------------------------
     // perform the change
     $actualResult = AreMergeable::into($ours, $theirs);
     // ----------------------------------------------------------------
     // test the results
     $this->assertFalse($actualResult);
 }
 /**
  * should we overwrite $ours[$key] with the value of $theirs?
  *
  * @param  array $ours
  *         the array where $key may exist
  * @param  string $key
  *         the index on $ours whose fate we are deciding
  * @param  mixed $theirs
  *         the data we want to assign to the index
  * @return boolean
  *         TRUE if we should overwrite the index's existing value
  *         with $value
  *         TRUE if $key currently has no value
  *         FALSE if we should merge $value into the index's exist
  *         value
  */
 private static function checkArray(array $ours, $key, $theirs)
 {
     // special case - index does not exist
     if (!array_key_exists($key, $ours)) {
         return true;
     }
     // general case - index exists, and we need to decide what should
     // be done about it
     return !AreMergeable::into($ours[$key], $theirs);
 }