function it_transits_to_next_state(Form $form, Transition $transition, Item $item, Listener $listener, State $state) { $listener->onBuildForm(Argument::cetera())->shouldBeCalled(); $listener->onValidate(Argument::cetera())->willReturn(true); $listener->onPreTransit(Argument::cetera())->shouldBeCalled(); $listener->onPostTransit(Argument::cetera())->shouldBeCalled(); $item->transit($transition, Argument::type(static::CONTEXT_CLASS), Argument::type(static::ERROR_COLLECTION_CLASS), true)->shouldBeCalled()->willReturn($state); $transition->executeActions($item, Argument::type(static::CONTEXT_CLASS), Argument::type(static::ERROR_COLLECTION_CLASS))->willReturn(true)->shouldBeCalled(); $transition->executePostActions($item, Argument::type(static::CONTEXT_CLASS), Argument::type(static::ERROR_COLLECTION_CLASS))->willReturn(true)->shouldBeCalled(); $transition->buildForm($form, $item)->shouldBeCalled(); $transition->checkPreCondition($item, Argument::type(static::CONTEXT_CLASS), Argument::type(static::ERROR_COLLECTION_CLASS))->shouldBeCalled(); $this->validate($form); $this->transit()->shouldHaveType('Netzmacht\\Workflow\\Flow\\State'); }