]> source.dussan.org Git - nextcloud-server.git/commitdiff
added unit tests for LoginFlowV2Service::startLoginFlow
authorKonrad Abicht <hi@inspirito.de>
Thu, 11 Feb 2021 08:56:09 +0000 (09:56 +0100)
committerKonrad Abicht <hi@inspirito.de>
Thu, 11 Feb 2021 08:56:09 +0000 (09:56 +0100)
Signed-off-by: Konrad Abicht <hi@inspirito.de>
tests/Core/Service/LoginFlowV2ServiceUnitTest.php

index 511c9be32718cf5b7c8c9d68609bec53383f3fdd..58c558aada4bf332d85d551b0e5a1f40c8aa92d6 100644 (file)
@@ -21,6 +21,7 @@
 
 namespace Tests\Core\Data;
 
+use Exception;
 use OC\Core\Service\LoginFlowV2Service;
 use OC\Core\Db\LoginFlowV2Mapper;
 use OC\Core\Exception\LoginFlowV2NotFoundException;
@@ -244,4 +245,43 @@ class LoginFlowV2ServiceUnitTest extends TestCase {
 
                $this->subjectUnderTest->getByLoginToken('test_token');
        }
+
+       /*
+        * Tests for startLoginFlow
+        */
+
+       public function testStartLoginFlow() {
+               $loginFlowV2 = new LoginFlowV2();
+
+               $this->mapper->expects($this->once())
+                       ->method('getByLoginToken')
+                       ->willReturn($loginFlowV2);
+
+               $this->mapper->expects($this->once())
+                       ->method('update');
+
+               $this->assertTrue($this->subjectUnderTest->startLoginFlow('test_token'));
+       }
+
+       public function testStartLoginFlowDoesNotExistException() {
+               $this->mapper->expects($this->once())
+                       ->method('getByLoginToken')
+                       ->willThrowException(new DoesNotExistException(''));
+
+               $this->assertFalse($this->subjectUnderTest->startLoginFlow('test_token'));
+       }
+
+       /**
+        * If an exception not of type DoesNotExistException is thrown,
+        * it is expected that it is not being handled by startLoginFlow.
+        */
+       public function testStartLoginFlowException() {
+               $this->expectException(Exception::class);
+
+               $this->mapper->expects($this->once())
+                       ->method('getByLoginToken')
+                       ->willThrowException(new Exception(''));
+
+               $this->subjectUnderTest->startLoginFlow('test_token');
+       }
 }