function it_passes_the_existing_subject_to_expectation(Wrapper $wrapper, WrappedObject $wrappedObject, Caller $caller, SubjectWithArrayAccess $arrayAccess, ExpectationFactory $expectationFactory, Expectation $expectation)
{
$existingSubject = new \ArrayObject();
$this->beConstructedWith($existingSubject, $wrapper, $wrappedObject, $caller, $arrayAccess, $expectationFactory);
$expectation->match(Argument::cetera())->willReturn(true);
$wrappedObject->getClassName()->willReturn('\\ArrayObject');
$expectationFactory->create(Argument::cetera())->willReturn($expectation);
$this->callOnWrappedObject('shouldBeAlright');
$expectationFactory->create(Argument::any(), Argument::exact($existingSubject), Argument::any())->shouldHaveBeenCalled();
}