objectManagerMock = $this->getMockForAbstractClass(\Magento\Framework\ObjectManagerInterface::class); $this->modeMock = $this->createMock(\Magento\Deploy\Model\Mode::class); $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); $this->command = $objectManager->getObject( \Magento\Deploy\Console\Command\SetModeCommand::class, ['objectManager' => $this->objectManagerMock] ); $this->objectManagerMock->expects($this->once())->method('create')->willReturn($this->modeMock); } public function testSetProductionMode() { $this->modeMock->expects($this->once())->method('enableProductionMode'); $tester = new CommandTester($this->command); $tester->execute(['mode' => 'production']); $this->assertContains( "production mode", $tester->getDisplay() ); } public function testSetDeveloperMode() { $this->modeMock->expects($this->once())->method('enableDeveloperMode'); $tester = new CommandTester($this->command); $tester->execute(['mode' => 'developer']); $this->assertContains( "developer mode", $tester->getDisplay() ); } public function testSetDefaultMode() { $this->modeMock->expects($this->once())->method('enableDefaultMode'); $tester = new CommandTester($this->command); $tester->execute(['mode' => 'default']); $this->assertContains( "default mode", $tester->getDisplay() ); } public function testSetProductionSkipCompilation() { $this->modeMock->expects($this->once())->method('enableProductionModeMinimal'); $tester = new CommandTester($this->command); $tester->execute(['mode' => 'production', '--skip-compilation' => true]); $this->assertContains( "production mode", $tester->getDisplay() ); } public function testSetInvalidMode() { $tester = new CommandTester($this->command); $tester->execute(['mode' => 'invalid-mode']); $this->assertContains( 'The mode can\'t be switched to "invalid-mode".', $tester->getDisplay() ); } }