public function testHydrate() { $datas = array('toto' => 'vtoto', 'tata' => 'vtata'); $mock = $this->getMockBuilder('stdClass')->setMethods(['setToto', 'setTata'])->getMock(); $mock->expects($this->any())->method('setToto')->with($this->equalTo('vtoto'))->will($this->returnSelf()); $mock->expects($this->any())->method('setTata')->with($this->equalTo('vtata'))->will($this->returnSelf()); $classmethode = new ClassMethods(); $classmethode->hydrate($datas, $mock); }
/** * Populate from an array. * * @param array $data * * @return AbstractModel */ public function exchangeArray(array &$data) { $hydrator = new ClassMethods(); $formatted = []; if (null !== $this->prefix) { $pr = $this->allParent(); $eq = $pr === $this->prefix; foreach ($data as $key => $value) { $fkey = null; if (0 === ($tmp = strpos($key, $this->prefix . $this->delimiter))) { $fkey = substr($key, strlen($this->prefix . $this->delimiter)); } elseif ($eq === false && $tmp !== false && 0 === strpos($key, $pr . $this->delimiter)) { $fkey = substr($key, strlen($pr . $this->delimiter)); } elseif (0 === ($tmp = strpos($key, $this->prefix . $this->delimiter_opt))) { $fkey = substr($key, strlen($this->prefix . $this->delimiter_opt)); if ($value === null) { $this->keep = false; } } elseif ($eq === false && $tmp !== false && 0 === strpos($key, $pr . $this->delimiter_opt)) { $fkey = substr($key, strlen($pr . $this->delimiter_opt)); if ($value === null) { $this->keep = false; } } if (null !== $fkey && $hydrator->canBeHydrated($fkey, $this)) { $formatted[$fkey] = $value === null ? new IsNull() : $value; unset($data[$key]); } } } if (null === $this->prefix || empty($formatted)) { foreach ($data as $key => $value) { if ($hydrator->canBeHydrated($key, $this)) { $formatted[$key] = $value === null ? new IsNull() : $value; unset($data[$key]); } } } if (!empty($formatted) && $this->keep === true) { $hydrator->hydrate($formatted, $this); } return $this; }