public function testResetProgress() { $menu = $this->getMockBuilder(CliMenu::class)->disableOriginalConstructor()->getMock(); $userStateSerializer = $this->getMockBuilder(UserStateSerializer::class)->disableOriginalConstructor()->getMock(); $userStateSerializer->expects($this->once())->method('serialize')->with($this->isInstanceOf(UserState::class)); $output = $this->getMockBuilder(OutputInterface::class)->disableOriginalConstructor()->getMock(); $output->expects($this->once())->method('writeLine')->with("Status Reset!"); $resetProgress = new ResetProgress($userStateSerializer, $output); $resetProgress->__invoke($menu); }
public function testResetProgressDisablesParentMenuItems() { $item1 = $this->createMock(MenuItemInterface::class); $item2 = $this->createMock(MenuItemInterface::class); $item1->expects($this->once())->method('hideItemExtra'); $item2->expects($this->once())->method('hideItemExtra'); $terminal = $this->createMock(TerminalInterface::class); $menu = new CliMenu('Menu', [$item1, $item2], $terminal); $confirm = $this->createMock(Confirm::class); $confirm->expects($this->once())->method('getStyle')->willReturn(new MenuStyle($terminal)); $confirm->expects($this->once())->method('display')->with('OK'); $subMenu = $this->getMockBuilder(CliMenu::class)->setMethods(['confirm'])->setConstructorArgs(['Sub Menu', [], $terminal])->getMock(); $subMenu->setParent($menu); $subMenu->expects($this->once())->method('confirm')->willReturn($confirm); $userStateSerializer = $this->createMock(UserStateSerializer::class); $userStateSerializer->expects($this->once())->method('serialize')->with($this->isInstanceOf(UserState::class)); $resetProgress = new ResetProgress($userStateSerializer); $resetProgress->__invoke($subMenu); }