public function testHasKey() { $this->if($asserter = new sut($generator = new asserter\generator()))->then->exception(function () use($asserter) { $asserter->hasKey(rand(0, PHP_INT_MAX)); })->isInstanceOf('mageekguy\\atoum\\exceptions\\logic')->hasMessage('Array is undefined')->if($asserter->setWith(array()))->then->exception(function () use($asserter, &$key) { $asserter->hasKey($key = rand(1, PHP_INT_MAX)); })->isInstanceOf('mageekguy\\atoum\\asserter\\exception')->hasMessage(sprintf($generator->getLocale()->_('%s has no key %s'), $asserter, $asserter->getTypeOf($key)))->exception(function () use($asserter, &$key, &$message) { $asserter->hasKey($key = rand(1, PHP_INT_MAX), $message = uniqid()); })->isInstanceOf('mageekguy\\atoum\\asserter\\exception')->hasMessage($message)->if($asserter->setWith(array(uniqid(), uniqid(), uniqid(), uniqid(), uniqid())))->then->object($asserter->hasKey(0))->isIdenticalTo($asserter)->object($asserter->hasKey(1))->isIdenticalTo($asserter)->object($asserter->hasKey(2))->isIdenticalTo($asserter)->object($asserter->hasKey(3))->isIdenticalTo($asserter)->object($asserter->hasKey(4))->isIdenticalTo($asserter)->exception(function () use($asserter) { $asserter->hasKey(5); })->isInstanceOf('mageekguy\\atoum\\asserter\\exception')->hasMessage(sprintf($generator->getLocale()->_('%s has no key %s'), $asserter, $asserter->getTypeOf(5)))->exception(function () use($asserter, &$message) { $asserter->hasKey(5, $message = uniqid()); })->isInstanceOf('mageekguy\\atoum\\asserter\\exception')->hasMessage($message); }