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(); }
function it_decorates_expectation_with_broken_event(Expectation $expectation, EventDispatcherInterface $dispatcher) { $alias = 'be'; $subject = new \stdClass(); $arguments = array(); $expectation->match(Argument::cetera())->willThrow('\\RuntimeException'); $dispatcher->dispatch('beforeExpectation', Argument::type('PhpSpec\\Event\\ExpectationEvent'))->shouldBeCalled(); $dispatcher->dispatch('afterExpectation', Argument::which('getResult', ExpectationEvent::BROKEN))->shouldBeCalled(); $this->shouldThrow('\\RuntimeException')->duringMatch($alias, $subject, $arguments); }