Porovnání dvou polí se neshoduje

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Michal Hlávka
Člen | 190
+
0
-

Zdravíčko,

porovnávám dvě pole, kde jedno z nich je řádek v databázi.

$expected = ['id' => 11, 'from_currency_id' => 2.0, 'to_currency_id' => 3.0, 'rate' => 0.7111, 'last_update' => new \Nette\Utils\DateTime('2015-06-23 12:37:21')];

$result = $exchangeRateRepository->getRate(2, 3);
activeRowToArray($result);

Assert::same($expected, $result);

Soubor actual

array(
	'id' => 11,
	'from_currency_id' => 2.0,
	'to_currency_id' => 3.0,
	'rate' => 0.7111,
	'last_update' => Nette\Utils\DateTime::__set_state(array(
		'date' => '2015-06-23 12:37:21.000000',
		'timezone_type' => 3,
		'timezone' => 'Europe/Prague',
	)),
)

Soubor expected

array(
	'id' => 11,
	'from_currency_id' => 2.0,
	'to_currency_id' => 3.0,
	'rate' => 0.7111,
	'last_update' => Nette\Utils\DateTime::__set_state(array(
		'date' => '2015-06-23 12:37:21.000000',
		'timezone_type' => 3,
		'timezone' => 'Europe/Prague',
	)),
)

Chybový hláška z testeru
http://i.imgur.com/lpvtvaZ.png

Jsem už trochu bezradnej, tak uvítám jakékoliv rady / zkušenosti :-) Děkuji předem.

iguana007
Člen | 970
+
0
-

Nemělo by to být takhle?

$expected = ['id' => 11, 'from_currency_id' => 2.0, 'to_currency_id' => 3.0, 'rate' => 0.7111, 'last_update' => new \Nette\Utils\DateTime('2015-06-23 12:37:21')];

$result = $exchangeRateRepository->getRate(2, 3);
$result = activeRowToArray($result);

Assert::same($expected, $result);
David Matějka
Moderator | 6445
+
0
-

pouzij equal misto same, u same museji byt ty data identicka, to u objektu znamena stejna instance, takze ti to failuje na tom datetime

Michal Hlávka
Člen | 190
+
0
-

@iguana007 nene to je správně, ale děkuji za odpověď. :-)

activeRowToArray(&$row)

@DavidMatějka mockrát děkuji.