Browse Source
Add tests for 2FA commands
Add tests for 2FA commands
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>pull/2784/head
No known key found for this signature in database
GPG Key ID: F941078878347C0C
2 changed files with 198 additions and 0 deletions
-
99tests/Core/Command/TwoFactorAuth/DisableTest.php
-
99tests/Core/Command/TwoFactorAuth/EnableTest.php
@ -0,0 +1,99 @@ |
|||||
|
<?php |
||||
|
/** |
||||
|
* @copyright 2016, Roeland Jago Douma <roeland@famdouma.nl> |
||||
|
* |
||||
|
* @author Roeland Jago Douma <roeland@famdouma.nl> |
||||
|
* |
||||
|
* @license GNU AGPL version 3 or any later version |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Affero General Public License as |
||||
|
* published by the Free Software Foundation, either version 3 of the |
||||
|
* License, or (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU Affero General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Affero General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
* |
||||
|
*/ |
||||
|
namespace Test\Core\Command\TwoFactorAuth; |
||||
|
|
||||
|
use OC\Authentication\TwoFactorAuth\Manager; |
||||
|
use OC\Core\Command\TwoFactorAuth\Disable; |
||||
|
use OCP\IUser; |
||||
|
use OCP\IUserManager; |
||||
|
use Symfony\Component\Console\Input\InputInterface; |
||||
|
use Symfony\Component\Console\Output\OutputInterface; |
||||
|
use Test\TestCase; |
||||
|
|
||||
|
class DisableTest extends TestCase { |
||||
|
|
||||
|
/** @var Manager|\PHPUnit_Framework_MockObject_MockObject */ |
||||
|
private $manager; |
||||
|
|
||||
|
/** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ |
||||
|
private $userManager; |
||||
|
|
||||
|
/** @var Disable */ |
||||
|
private $command; |
||||
|
|
||||
|
public function setUp() { |
||||
|
parent::setUp(); |
||||
|
|
||||
|
$this->manager = $this->createMock(Manager::class); |
||||
|
$this->userManager = $this->createMock(IUserManager::class); |
||||
|
|
||||
|
$this->command = new Disable($this->manager, $this->userManager); |
||||
|
} |
||||
|
|
||||
|
public function testDisableSuccess() { |
||||
|
$user = $this->createMock(IUser::class); |
||||
|
|
||||
|
$input = $this->createMock(InputInterface::class); |
||||
|
$output = $this->createMock(OutputInterface::class); |
||||
|
|
||||
|
$input->method('getArgument') |
||||
|
->with($this->equalTo('uid')) |
||||
|
->willReturn('user'); |
||||
|
|
||||
|
$this->userManager->method('get') |
||||
|
->with('user') |
||||
|
->willReturn($user); |
||||
|
|
||||
|
$this->manager->expects($this->once()) |
||||
|
->method('disableTwoFactorAuthentication') |
||||
|
->with($this->equalTo($user)); |
||||
|
|
||||
|
$output->expects($this->once()) |
||||
|
->method('writeln') |
||||
|
->with('Two-factor authentication disabled for user user'); |
||||
|
|
||||
|
$this->invokePrivate($this->command, 'execute', [$input, $output]); |
||||
|
} |
||||
|
|
||||
|
public function testEnableFail() { |
||||
|
$input = $this->createMock(InputInterface::class); |
||||
|
$output = $this->createMock(OutputInterface::class); |
||||
|
|
||||
|
$input->method('getArgument') |
||||
|
->with($this->equalTo('uid')) |
||||
|
->willReturn('user'); |
||||
|
|
||||
|
$this->userManager->method('get') |
||||
|
->with('user') |
||||
|
->willReturn(null); |
||||
|
|
||||
|
$this->manager->expects($this->never()) |
||||
|
->method($this->anything()); |
||||
|
|
||||
|
$output->expects($this->once()) |
||||
|
->method('writeln') |
||||
|
->with('<error>Invalid UID</error>'); |
||||
|
|
||||
|
$this->invokePrivate($this->command, 'execute', [$input, $output]); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,99 @@ |
|||||
|
<?php |
||||
|
/** |
||||
|
* @copyright 2016, Roeland Jago Douma <roeland@famdouma.nl> |
||||
|
* |
||||
|
* @author Roeland Jago Douma <roeland@famdouma.nl> |
||||
|
* |
||||
|
* @license GNU AGPL version 3 or any later version |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Affero General Public License as |
||||
|
* published by the Free Software Foundation, either version 3 of the |
||||
|
* License, or (at your option) any later version. |
||||
|
* |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU Affero General Public License for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Affero General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
* |
||||
|
*/ |
||||
|
namespace Test\Core\Command\TwoFactorAuth; |
||||
|
|
||||
|
use OC\Authentication\TwoFactorAuth\Manager; |
||||
|
use OC\Core\Command\TwoFactorAuth\Enable; |
||||
|
use OCP\IUser; |
||||
|
use OCP\IUserManager; |
||||
|
use Symfony\Component\Console\Input\InputInterface; |
||||
|
use Symfony\Component\Console\Output\OutputInterface; |
||||
|
use Test\TestCase; |
||||
|
|
||||
|
class EnableTest extends TestCase { |
||||
|
|
||||
|
/** @var Manager|\PHPUnit_Framework_MockObject_MockObject */ |
||||
|
private $manager; |
||||
|
|
||||
|
/** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ |
||||
|
private $userManager; |
||||
|
|
||||
|
/** @var Enable */ |
||||
|
private $command; |
||||
|
|
||||
|
public function setUp() { |
||||
|
parent::setUp(); |
||||
|
|
||||
|
$this->manager = $this->createMock(Manager::class); |
||||
|
$this->userManager = $this->createMock(IUserManager::class); |
||||
|
|
||||
|
$this->command = new Enable($this->manager, $this->userManager); |
||||
|
} |
||||
|
|
||||
|
public function testEnableSuccess() { |
||||
|
$user = $this->createMock(IUser::class); |
||||
|
|
||||
|
$input = $this->createMock(InputInterface::class); |
||||
|
$output = $this->createMock(OutputInterface::class); |
||||
|
|
||||
|
$input->method('getArgument') |
||||
|
->with($this->equalTo('uid')) |
||||
|
->willReturn('user'); |
||||
|
|
||||
|
$this->userManager->method('get') |
||||
|
->with('user') |
||||
|
->willReturn($user); |
||||
|
|
||||
|
$this->manager->expects($this->once()) |
||||
|
->method('enableTwoFactorAuthentication') |
||||
|
->with($this->equalTo($user)); |
||||
|
|
||||
|
$output->expects($this->once()) |
||||
|
->method('writeln') |
||||
|
->with('Two-factor authentication enabled for user user'); |
||||
|
|
||||
|
$this->invokePrivate($this->command, 'execute', [$input, $output]); |
||||
|
} |
||||
|
|
||||
|
public function testEnableFail() { |
||||
|
$input = $this->createMock(InputInterface::class); |
||||
|
$output = $this->createMock(OutputInterface::class); |
||||
|
|
||||
|
$input->method('getArgument') |
||||
|
->with($this->equalTo('uid')) |
||||
|
->willReturn('user'); |
||||
|
|
||||
|
$this->userManager->method('get') |
||||
|
->with('user') |
||||
|
->willReturn(null); |
||||
|
|
||||
|
$this->manager->expects($this->never()) |
||||
|
->method($this->anything()); |
||||
|
|
||||
|
$output->expects($this->once()) |
||||
|
->method('writeln') |
||||
|
->with('<error>Invalid UID</error>'); |
||||
|
|
||||
|
$this->invokePrivate($this->command, 'execute', [$input, $output]); |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue