function it_accepts_any_key_token_type_to_score_object_that_is_both_traversable_and_array_accessible(TokenInterface $key, TokenInterface $value, \ArrayIterator $object)
{
$this->beConstructedWith($key, $value);
$object->current()->will(function () use($object) {
$object->valid()->willReturn(false);
return 'value';
});
$object->key()->willReturn('key');
$object->rewind()->willReturn(null);
$object->next()->willReturn(null);
$object->valid()->willReturn(true);
$this->shouldNotThrow(new InvalidArgumentException())->duringScoreArgument($object);
}