]> source.dussan.org Git - nextcloud-server.git/commitdiff
Remove some more at matchers in tests/lib 32901/head
authorCôme Chilliet <come.chilliet@nextcloud.com>
Mon, 20 Jun 2022 08:53:06 +0000 (10:53 +0200)
committerCôme Chilliet <come.chilliet@nextcloud.com>
Mon, 20 Jun 2022 08:53:06 +0000 (10:53 +0200)
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
tests/lib/DB/MigrationsTest.php
tests/lib/Encryption/DecryptAllTest.php
tests/lib/Encryption/Keys/StorageTest.php
tests/lib/Files/Mount/ObjectHomeMountProviderTest.php
tests/lib/Files/ViewTest.php
tests/lib/Http/Client/ClientTest.php
tests/lib/InstallerTest.php
tests/lib/IntegrityCheck/CheckerTest.php
tests/lib/L10N/FactoryTest.php

index 206fe1a3798ff04a940a4e62826d67ecd094fb9d..3d115f25adfd5a51edd8a124b7f4ed3b900e6c3f 100644 (file)
@@ -115,12 +115,12 @@ class MigrationsTest extends \Test\TestCase {
                        ->willReturn($wrappedSchema);
 
                $step = $this->createMock(IMigrationStep::class);
-               $step->expects($this->at(0))
+               $step->expects($this->once())
                        ->method('preSchemaChange');
-               $step->expects($this->at(1))
+               $step->expects($this->once())
                        ->method('changeSchema')
                        ->willReturn($schemaResult);
-               $step->expects($this->at(2))
+               $step->expects($this->once())
                        ->method('postSchemaChange');
 
                $this->migrationService = $this->getMockBuilder(MigrationService::class)
@@ -145,12 +145,12 @@ class MigrationsTest extends \Test\TestCase {
                        ->method('migrateToSchema');
 
                $step = $this->createMock(IMigrationStep::class);
-               $step->expects($this->at(0))
+               $step->expects($this->once())
                        ->method('preSchemaChange');
-               $step->expects($this->at(1))
+               $step->expects($this->once())
                        ->method('changeSchema')
                        ->willReturn(null);
-               $step->expects($this->at(2))
+               $step->expects($this->once())
                        ->method('postSchemaChange');
 
                $this->migrationService = $this->getMockBuilder(MigrationService::class)
index 90ff045a9b9a0a1b47ad642662c3907e41d469c1..92ed2dcd70144903ee8f2e2841eeab5bac9deb39 100644 (file)
@@ -224,12 +224,12 @@ class DecryptAllTest extends TestCase {
                        $this->userInterface->expects($this->any())
                                ->method('getUsers')
                                ->willReturn(['user1', 'user2']);
-                       $instance->expects($this->at(0))
+                       $instance->expects($this->exactly(2))
                                ->method('decryptUsersFiles')
-                               ->with('user1');
-                       $instance->expects($this->at(1))
-                               ->method('decryptUsersFiles')
-                               ->with('user2');
+                               ->withConsecutive(
+                                       ['user1'],
+                                       ['user2'],
+                               );
                } else {
                        $instance->expects($this->once())
                                ->method('decryptUsersFiles')
@@ -269,17 +269,18 @@ class DecryptAllTest extends TestCase {
                $sharedStorage->expects($this->once())->method('instanceOfStorage')
                        ->with('OCA\Files_Sharing\SharedStorage')->willReturn(true);
 
-               $this->view->expects($this->at(0))->method('getDirectoryContent')
-                       ->with('/user1/files')->willReturn(
+               $this->view->expects($this->exactly(2))
+                       ->method('getDirectoryContent')
+                       ->withConsecutive(
+                               ['/user1/files'],
+                               ['/user1/files/foo']
+                       )
+                       ->willReturnOnConsecutiveCalls(
                                [
                                        new FileInfo('path', $storage, 'intPath', ['name' => 'foo', 'type' => 'dir'], null),
                                        new FileInfo('path', $storage, 'intPath', ['name' => 'bar', 'type' => 'file', 'encrypted' => true], null),
                                        new FileInfo('path', $sharedStorage, 'intPath', ['name' => 'shared', 'type' => 'file', 'encrypted' => true], null),
-                               ]
-                       );
-
-               $this->view->expects($this->at(3))->method('getDirectoryContent')
-                       ->with('/user1/files/foo')->willReturn(
+                               ],
                                [
                                        new FileInfo('path', $storage, 'intPath', ['name' => 'subfile', 'type' => 'file', 'encrypted' => true], null)
                                ]
@@ -295,12 +296,12 @@ class DecryptAllTest extends TestCase {
                                }
                        );
 
-               $instance->expects($this->at(0))
-                       ->method('decryptFile')
-                       ->with('/user1/files/bar');
-               $instance->expects($this->at(1))
+               $instance->expects($this->exactly(2))
                        ->method('decryptFile')
-                       ->with('/user1/files/foo/subfile');
+                       ->withConsecutive(
+                               ['/user1/files/bar'],
+                               ['/user1/files/foo/subfile'],
+                       );
 
 
                /* We need format method to return a string */
index 30680646f7330437f09dd1cee6d6a1f089ddcdad..bb7bbbcd7c1f02abea56f99f404862cfcb3a2298 100644 (file)
@@ -162,27 +162,32 @@ class StorageTest extends TestCase {
                        ->method('isSystemWideMountPoint')
                        ->willReturn(false);
 
-               $this->view->expects($this->at(0))
-                       ->method('file_exists')
-                       ->with($this->equalTo('/user1/files_encryption/keys' . $strippedPartialName . '/encModule/fileKey'))
-                       ->willReturn($originalKeyExists);
-
                $this->crypto->method('decrypt')
                        ->willReturnCallback(function ($data, $pass) {
                                return $data;
                        });
 
                if (!$originalKeyExists) {
-                       $this->view->expects($this->at(1))
+                       $this->view->expects($this->exactly(2))
                                ->method('file_exists')
-                               ->with($this->equalTo('/user1/files_encryption/keys' . $path . '/encModule/fileKey'))
-                               ->willReturn(true);
+                               ->withConsecutive(
+                                       [$this->equalTo('/user1/files_encryption/keys' . $strippedPartialName . '/encModule/fileKey')],
+                                       [$this->equalTo('/user1/files_encryption/keys' . $path . '/encModule/fileKey')],
+                               )->willReturnOnConsecutiveCalls(
+                                       $originalKeyExists,
+                                       true,
+                               );
 
                        $this->view->expects($this->once())
                                ->method('file_get_contents')
                                ->with($this->equalTo('/user1/files_encryption/keys' . $path . '/encModule/fileKey'))
                                ->willReturn(json_encode(['key' => base64_encode('key2')]));
                } else {
+                       $this->view->expects($this->once())
+                               ->method('file_exists')
+                               ->with($this->equalTo('/user1/files_encryption/keys' . $strippedPartialName . '/encModule/fileKey'))
+                               ->willReturn($originalKeyExists);
+
                        $this->view->expects($this->once())
                                ->method('file_get_contents')
                                ->with($this->equalTo('/user1/files_encryption/keys' . $strippedPartialName . '/encModule/fileKey'))
@@ -627,10 +632,11 @@ class StorageTest extends TestCase {
                        ->with('user1/files_encryption/backup')->willReturn(!$createBackupDir);
 
                if ($createBackupDir) {
-                       $this->view->expects($this->at(1))->method('mkdir')
-                               ->with('user1/files_encryption/backup');
-                       $this->view->expects($this->at(2))->method('mkdir')
-                               ->with('user1/files_encryption/backup/test.encryptionModule.1234567');
+                       $this->view->expects($this->exactly(2))->method('mkdir')
+                               ->withConsecutive(
+                                       ['user1/files_encryption/backup'],
+                                       ['user1/files_encryption/backup/test.encryptionModule.1234567'],
+                               );
                } else {
                        $this->view->expects($this->once())->method('mkdir')
                                ->with('user1/files_encryption/backup/test.encryptionModule.1234567');
index 5dc93660d9c77c06936c3c9dd7af3ab6ad38f80c..7ce8714012220396490697eb3a1acaa96fa49eed 100644 (file)
@@ -201,17 +201,17 @@ class ObjectHomeMountProviderTest extends \Test\TestCase {
        }
 
        public function testMultiBucketConfigFirstFallBackSingle() {
-               $this->config->expects($this->at(0))
-                       ->method('getSystemValue')
-                       ->with($this->equalTo('objectstore_multibucket'))
-                       ->willReturn('');
-
-               $this->config->expects($this->at(1))
+               $this->config->expects($this->exactly(2))
                        ->method('getSystemValue')
-                       ->with($this->equalTo('objectstore'))
-                       ->willReturn([
-                               'class' => 'Test\Files\Mount\FakeObjectStore',
-                       ]);
+                       ->withConsecutive(
+                               [$this->equalTo('objectstore_multibucket')],
+                               [$this->equalTo('objectstore')],
+                       )->willReturnOnConsecutiveCalls(
+                               '',
+                               [
+                                       'class' => 'Test\Files\Mount\FakeObjectStore',
+                               ],
+                       );
 
                $this->user->method('getUID')
                        ->willReturn('uid');
index 7b735720ff13bcfe5cfb63a11e15ac8e77b8b92c..37cd8414a05a8c1149716805ba95436fc554e0f4 100644 (file)
@@ -2643,44 +2643,31 @@ class ViewTest extends \Test\TestCase {
                        ])
                        ->getMock();
 
-               $view
-                       ->expects($this->at(0))
-                       ->method('is_file')
-                       ->with('/new')
-                       ->willReturn(false);
-               $view
-                       ->expects($this->at(1))
-                       ->method('file_exists')
-                       ->with('/new')
-                       ->willReturn(true);
-               $view
-                       ->expects($this->at(2))
-                       ->method('is_file')
-                       ->with('/new/folder')
-                       ->willReturn(false);
-               $view
-                       ->expects($this->at(3))
-                       ->method('file_exists')
-                       ->with('/new/folder')
-                       ->willReturn(false);
-               $view
-                       ->expects($this->at(4))
-                       ->method('mkdir')
-                       ->with('/new/folder');
-               $view
-                       ->expects($this->at(5))
+               $view->expects($this->exactly(3))
                        ->method('is_file')
-                       ->with('/new/folder/structure')
+                       ->withConsecutive(
+                               ['/new'],
+                               ['/new/folder'],
+                               ['/new/folder/structure'],
+                       )
                        ->willReturn(false);
-               $view
-                       ->expects($this->at(6))
+               $view->expects($this->exactly(3))
                        ->method('file_exists')
-                       ->with('/new/folder/structure')
-                       ->willReturn(false);
-               $view
-                       ->expects($this->at(7))
+                       ->withConsecutive(
+                               ['/new'],
+                               ['/new/folder'],
+                               ['/new/folder/structure'],
+                       )->willReturnOnConsecutiveCalls(
+                               true,
+                               false,
+                               false,
+                       );
+               $view->expects($this->exactly(2))
                        ->method('mkdir')
-                       ->with('/new/folder/structure');
+                       ->withConsecutive(
+                               ['/new/folder'],
+                               ['/new/folder/structure'],
+                       );
 
                $this->assertTrue(self::invokePrivate($view, 'createParentDirectories', ['/new/folder/structure']));
        }
index 63835a4d4cdfbc88f033829c5650045d69bd97ac..141c6190cd97d7f9d36e7892c089c322407d0200 100644 (file)
@@ -75,35 +75,33 @@ class ClientTest extends \Test\TestCase {
 
        public function testGetProxyUriProxyHostWithPassword(): void {
                $this->config
-                       ->expects($this->at(0))
+                       ->expects($this->exactly(3))
                        ->method('getSystemValue')
-                       ->with(
-                               $this->equalTo('proxy'),
-                               $this->callback(function ($input) {
-                                       return $input === '';
-                               })
+                       ->withConsecutive(
+                               [
+                                       $this->equalTo('proxy'),
+                                       $this->callback(function ($input) {
+                                               return $input === '';
+                                       })
+                               ],
+                               [
+                                       $this->equalTo('proxyuserpwd'),
+                                       $this->callback(function ($input) {
+                                               return $input === '';
+                                       })
+                               ],
+                               [
+                                       $this->equalTo('proxyexclude'),
+                                       $this->callback(function ($input) {
+                                               return $input === [];
+                                       })
+                               ],
                        )
-                       ->willReturn('foo');
-               $this->config
-                       ->expects($this->at(1))
-                       ->method('getSystemValue')
-                       ->with(
-                               $this->equalTo('proxyuserpwd'),
-                               $this->callback(function ($input) {
-                                       return $input === '';
-                               })
-                       )
-                       ->willReturn('username:password');
-               $this->config
-                       ->expects($this->at(2))
-                       ->method('getSystemValue')
-                       ->with(
-                               $this->equalTo('proxyexclude'),
-                               $this->callback(function ($input) {
-                                       return $input === [];
-                               })
-                       )
-                       ->willReturn([]);
+                       ->willReturnOnConsecutiveCalls(
+                               'foo',
+                               'username:password',
+                               [],
+                       );
                $this->assertEquals([
                        'http' => 'username:password@foo',
                        'https' => 'username:password@foo'
@@ -112,35 +110,33 @@ class ClientTest extends \Test\TestCase {
 
        public function testGetProxyUriProxyHostWithPasswordAndExclude(): void {
                $this->config
-                       ->expects($this->at(0))
-                       ->method('getSystemValue')
-                       ->with(
-                               $this->equalTo('proxy'),
-                               $this->callback(function ($input) {
-                                       return $input === '';
-                               })
-                       )
-                       ->willReturn('foo');
-               $this->config
-                       ->expects($this->at(1))
+                       ->expects($this->exactly(3))
                        ->method('getSystemValue')
-                       ->with(
-                               $this->equalTo('proxyuserpwd'),
-                               $this->callback(function ($input) {
-                                       return $input === '';
-                               })
+                       ->withConsecutive(
+                               [
+                                       $this->equalTo('proxy'),
+                                       $this->callback(function ($input) {
+                                               return $input === '';
+                                       })
+                               ],
+                               [
+                                       $this->equalTo('proxyuserpwd'),
+                                       $this->callback(function ($input) {
+                                               return $input === '';
+                                       })
+                               ],
+                               [
+                                       $this->equalTo('proxyexclude'),
+                                       $this->callback(function ($input) {
+                                               return $input === [];
+                                       })
+                               ],
                        )
-                       ->willReturn('username:password');
-               $this->config
-                       ->expects($this->at(2))
-                       ->method('getSystemValue')
-                       ->with(
-                               $this->equalTo('proxyexclude'),
-                               $this->callback(function ($input) {
-                                       return $input === [];
-                               })
-                       )
-                       ->willReturn(['bar']);
+                       ->willReturnOnConsecutiveCalls(
+                               'foo',
+                               'username:password',
+                               ['bar'],
+                       );
                $this->assertEquals([
                        'http' => 'username:password@foo',
                        'https' => 'username:password@foo',
@@ -469,10 +465,16 @@ class ClientTest extends \Test\TestCase {
 
        public function testSetDefaultOptionsWithNotInstalled(): void {
                $this->config
-                       ->expects($this->at(1))
+                       ->expects($this->exactly(2))
                        ->method('getSystemValue')
-                       ->with('installed', false)
-                       ->willReturn(false);
+                       ->withConsecutive(
+                               ['proxy', ''],
+                               ['installed', false],
+                       )
+                       ->willReturnOnConsecutiveCalls(
+                               '',
+                               false,
+                       );
                $this->certificateManager
                        ->expects($this->never())
                        ->method('listCertificates');
@@ -500,20 +502,20 @@ class ClientTest extends \Test\TestCase {
 
        public function testSetDefaultOptionsWithProxy(): void {
                $this->config
-                       ->expects($this->at(0))
+                       ->expects($this->exactly(4))
                        ->method('getSystemValue')
-                       ->with('proxy', null)
-                       ->willReturn('foo');
-               $this->config
-                       ->expects($this->at(1))
-                       ->method('getSystemValue')
-                       ->with('proxyuserpwd', null)
-                       ->willReturn(null);
-               $this->config
-                       ->expects($this->at(2))
-                       ->method('getSystemValue')
-                       ->with('proxyexclude', [])
-                       ->willReturn([]);
+                       ->withConsecutive(
+                               ['proxy', ''],
+                               ['proxyuserpwd', ''],
+                               ['proxyexclude', []],
+                               ['installed', false],
+                       )
+                       ->willReturnOnConsecutiveCalls(
+                               'foo',
+                               '',
+                               [],
+                               true,
+                       );
                $this->certificateManager
                        ->expects($this->once())
                        ->method('getAbsoluteBundlePath')
@@ -547,20 +549,20 @@ class ClientTest extends \Test\TestCase {
 
        public function testSetDefaultOptionsWithProxyAndExclude(): void {
                $this->config
-                       ->expects($this->at(0))
+                       ->expects($this->exactly(4))
                        ->method('getSystemValue')
-                       ->with('proxy', null)
-                       ->willReturn('foo');
-               $this->config
-                       ->expects($this->at(1))
-                       ->method('getSystemValue')
-                       ->with('proxyuserpwd', null)
-                       ->willReturn(null);
-               $this->config
-                       ->expects($this->at(2))
-                       ->method('getSystemValue')
-                       ->with('proxyexclude', [])
-                       ->willReturn(['bar']);
+                       ->withConsecutive(
+                               ['proxy', ''],
+                               ['proxyuserpwd', ''],
+                               ['proxyexclude', []],
+                               ['installed', false],
+                       )
+                       ->willReturnOnConsecutiveCalls(
+                               'foo',
+                               '',
+                               ['bar'],
+                               true,
+                       );
                $this->certificateManager
                        ->expects($this->once())
                        ->method('getAbsoluteBundlePath')
index c49f8bf76a5622c9677eade3b80965b933120c59..352580337ad293a0f1a7dab6f92e66e3eae4cbf4 100644 (file)
@@ -340,7 +340,7 @@ u/spPSSVhaun5BA1FlphB2TkgnzlCmxJa63nFY045e/Jq+IKMcqqZl/092gbI2EQ
                $realTmpFile = \OC::$server->getTempManager()->getTemporaryFile('.tar.gz');
                copy(__DIR__ . '/../data/testapp.tar.gz', $realTmpFile);
                $this->tempManager
-                       ->expects($this->at(0))
+                       ->expects($this->once())
                        ->method('getTemporaryFile')
                        ->with('.tar.gz')
                        ->willReturn($realTmpFile);
@@ -418,14 +418,14 @@ YwDVP+QmNRzx72jtqAN/Kc3CvQ9nkgYhU65B95aX0xA=',
                $realTmpFile = \OC::$server->getTempManager()->getTemporaryFile('.tar.gz');
                copy(__DIR__ . '/../data/testapp1.tar.gz', $realTmpFile);
                $this->tempManager
-                       ->expects($this->at(0))
+                       ->expects($this->once())
                        ->method('getTemporaryFile')
                        ->with('.tar.gz')
                        ->willReturn($realTmpFile);
                $realTmpFolder = \OC::$server->getTempManager()->getTemporaryFolder();
                mkdir($realTmpFolder . '/testfolder');
                $this->tempManager
-                       ->expects($this->at(1))
+                       ->expects($this->once())
                        ->method('getTemporaryFolder')
                        ->willReturn($realTmpFolder);
                $client = $this->createMock(IClient::class);
@@ -502,13 +502,13 @@ YwDVP+QmNRzx72jtqAN/Kc3CvQ9nkgYhU65B95aX0xA=',
                $realTmpFile = \OC::$server->getTempManager()->getTemporaryFile('.tar.gz');
                copy(__DIR__ . '/../data/testapp1.tar.gz', $realTmpFile);
                $this->tempManager
-                       ->expects($this->at(0))
+                       ->expects($this->once())
                        ->method('getTemporaryFile')
                        ->with('.tar.gz')
                        ->willReturn($realTmpFile);
                $realTmpFolder = \OC::$server->getTempManager()->getTemporaryFolder();
                $this->tempManager
-                       ->expects($this->at(1))
+                       ->expects($this->once())
                        ->method('getTemporaryFolder')
                        ->willReturn($realTmpFolder);
                $client = $this->createMock(IClient::class);
@@ -575,30 +575,30 @@ MPLX6f5V9tCJtlH6ztmEcDROfvuVc0U3rEhqx2hphoyo+MZrPFpdcJL8KkIdMKbY
                        ],
                ];
                $this->appFetcher
-                       ->expects($this->at(0))
+                       ->expects($this->atLeastOnce())
                        ->method('get')
-                       ->willReturn($appArray);
+                       ->willReturnOnConsecutiveCalls($appArray);
                $realTmpFile = \OC::$server->getTempManager()->getTemporaryFile('.tar.gz');
                copy(__DIR__ . '/../data/testapp.tar.gz', $realTmpFile);
                $this->tempManager
-                       ->expects($this->at(0))
+                       ->expects($this->atLeastOnce())
                        ->method('getTemporaryFile')
                        ->with('.tar.gz')
-                       ->willReturn($realTmpFile);
+                       ->willReturnOnConsecutiveCalls($realTmpFile);
                $realTmpFolder = \OC::$server->getTempManager()->getTemporaryFolder();
                $this->tempManager
-                       ->expects($this->at(1))
+                       ->expects($this->atLeastOnce())
                        ->method('getTemporaryFolder')
-                       ->willReturn($realTmpFolder);
+                       ->willReturnOnConsecutiveCalls($realTmpFolder);
                $client = $this->createMock(IClient::class);
                $client
                        ->expects($this->once())
                        ->method('get')
                        ->with('https://example.com', ['sink' => $realTmpFile, 'timeout' => 120]);
                $this->clientService
-                       ->expects($this->at(0))
+                       ->expects($this->atLeastOnce())
                        ->method('newClient')
-                       ->willReturn($client);
+                       ->willReturnOnConsecutiveCalls($client);
 
                $installer = $this->getInstaller();
                $installer->downloadApp('testapp');
index be9ecdd9041b276a0f78a9435fa093a589909608..37f6885c0acf22a76dcde2235043273720e9ece8 100644 (file)
@@ -88,12 +88,12 @@ class CheckerTest extends TestCase {
                $this->expectExceptionMessage('Exception message');
 
                $this->fileAccessHelper
-                       ->expects($this->at(0))
+                       ->expects($this->once())
                        ->method('assertDirectoryExists')
                        ->with('NotExistingApp/appinfo')
                        ->willThrowException(new \Exception('Exception message'));
                $this->fileAccessHelper
-                       ->expects($this->at(1))
+                       ->expects($this->once())
                        ->method('is_writable')
                        ->with('NotExistingApp/appinfo')
                        ->willReturn(true);
@@ -202,19 +202,16 @@ class CheckerTest extends TestCase {
     "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUc\/0FxYrsgSs9rDxp03EJmbjN0NwwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIxMDMzM1oXDTE2MTEwMzIxMDMzM1owDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALb6EgHpkAqZbO5vRO8XSh7G7XGWHw5s\r\niOf4RwPXR6SE9bWZEm\/b72SfWk\/\/J6AbrD8WiOzBuT\/ODy6k5T1arEdHO+Pux0W1\r\nMxYJJI4kH74KKgMpC0SB0Rt+8WrMqV1r3hhJ46df6Xr\/xolP3oD+eLbShPcblhdS\r\nVtkZEkoev8Sh6L2wDCeHDyPxzvj1w2dTdGVO9Kztn0xIlyfEBakqvBWtcxyi3Ln0\r\nklnxlMx3tPDUE4kqvpia9qNiB1AN2PV93eNr5\/2riAzIssMFSCarWCx0AKYb54+d\r\nxLpcYFyqPJ0ydBCkF78DD45RCZet6PNYkdzgbqlUWEGGomkuDoJbBg4wzgzO0D77\r\nH87KFhYW8tKFFvF1V3AHl\/sFQ9tDHaxM9Y0pZ2jPp\/ccdiqnmdkBxBDqsiRvHvVB\r\nCn6qpb4vWGFC7vHOBfYspmEL1zLlKXZv3ezMZEZw7O9ZvUP3VO\/wAtd2vUW8UFiq\r\ns2v1QnNLN6jNh51obcwmrBvWhJy9vQIdtIjQbDxqWTHh1zUSrw9wrlklCBZ\/zrM0\r\ni8nfCFwTxWRxp3H9KoECzO\/zS5R5KIS7s3\/wq\/w9T2Ie4rcecgXwDizwnn0C\/aKc\r\nbDIjujpL1s9HO05pcD\/V3wKcPZ1izymBkmMyIbL52iRVN5FTVHeZdXPpFuq+CTQJ\r\nQ238lC+A\/KOVAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGoKTnh8RfJV4sQItVC2\r\nAvfJagkrIqZ3iiQTUBQGTKBsTnAqE1H7QgUSV9vSd+8rgvHkyZsRjmtyR1e3A6Ji\r\noNCXUbExC\/0iCPUqdHZIVb+Lc\/vWuv4ByFMybGPydgtLoEUX2ZrKFWmcgZFDUSRd\r\n9Uj26vtUhCC4bU4jgu6hIrR9IuxOBLQUxGTRZyAcXvj7obqRAEZwFAKQgFpfpqTb\r\nH+kjcbZSaAlLVSF7vBc1syyI8RGYbqpwvtREqJtl5IEIwe6huEqJ3zPnlP2th\/55\r\ncf3Fovj6JJgbb9XFxrdnsOsDOu\/tpnaRWlvv5ib4+SzG5wWFT5UUEo4Wg2STQiiX\r\nuVSRQxK1LE1yg84bs3NZk9FSQh4B8vZVuRr5FaJsZZkwlFlhRO\/\/+TJtXRbyNgsf\r\noMRZGi8DLGU2SGEAHcRH\/QZHq\/XDUWVzdxrSBYcy7GSpT7UDVzGv1rEJUrn5veP1\r\n0KmauAqtiIaYRm4f6YBsn0INcZxzIPZ0p8qFtVZBPeHhvQtvOt0iXI\/XUxEWOa2F\r\nK2EqhErgMK\/N07U1JJJay5tYZRtvkGq46oP\/5kQG8hYST0MDK6VihJoPpvCmAm4E\r\npEYKQ96x6A4EH9Y9mZlYozH\/eqmxPbTK8n89\/p7Ydun4rI+B2iiLnY8REWWy6+UQ\r\nV204fGUkJqW5CrKy3P3XvY9X\r\n-----END CERTIFICATE-----"
 }';
                $this->fileAccessHelper
-                               ->expects($this->at(0))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/app//appinfo/signature.json'
-                               )
-                               ->willReturn($signatureDataFile);
-               $this->fileAccessHelper
-                               ->expects($this->at(1))
-                               ->method('file_get_contents')
-                               ->with(
-                                               '/resources/codesigning/root.crt'
-                               )
-                               ->willReturn(file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt'));
+                       ->expects($this->exactly(2))
+                       ->method('file_get_contents')
+                       ->withConsecutive(
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/app//appinfo/signature.json'],
+                               ['/resources/codesigning/root.crt'],
+                       )
+                       ->willReturnOnConsecutiveCalls(
+                               $signatureDataFile,
+                               file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')
+                       );
 
                $this->assertSame([], $this->checker->verifyAppSignature('SomeApp'));
        }
@@ -244,19 +241,16 @@ class CheckerTest extends TestCase {
     "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEwTCCAqmgAwIBAgIUWv0iujufs5lUr0svCf\/qTQvoyKAwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIyNDk1M1oXDTE2MTEwMzIyNDk1M1owEjEQMA4GA1UEAwwHU29tZUFwcDCCAiIw\r\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK8q0x62agGSRBqeWsaeEwFfepMk\r\nF8cAobMMi50qHCv9IrOn\/ZH9l52xBrbIkErVmRjmly0d4JhD8Ymhidsh9ONKYl\/j\r\n+ishsZDM8eNNdp3Ew+fEYVvY1W7mR1qU24NWj0bzVsClI7hvPVIuw7AjfBDq1C5+\r\nA+ZSLSXYvOK2cEWjdxQfuNZwEZSjmA63DUllBIrm35IaTvfuyhU6BW9yHZxmb8+M\r\nw0xDv30D5UkE\/2N7Pa\/HQJLxCR+3zKibRK3nUyRDLSXxMkU9PnFNaPNX59VPgyj4\r\nGB1CFSToldJVPF4pzh7p36uGXZVxs8m3LFD4Ol8mhi7jkxDZjqFN46gzR0r23Py6\r\ndol9vfawGIoUwp9LvL0S7MvdRY0oazLXwClLP4OQ17zpSMAiCj7fgNT661JamPGj\r\nt5O7Zn2wA7I4ddDS\/HDTWCu98Zwc9fHIpsJPgCZ9awoqxi4Mnf7Pk9g5nnXhszGC\r\ncxxIASQKM+GhdzoRxKknax2RzUCwCzcPRtCj8AQT\/x\/mqN3PfRmlnFBNACUw9bpZ\r\nSOoNq2pCF9igftDWpSIXQ38pVpKLWowjjg3DVRmVKBgivHnUnVLyzYBahHPj0vaz\r\ntFtUFRaqXDnt+4qyUGyrT5h5pjZaTcHIcSB4PiarYwdVvgslgwnQzOUcGAzRWBD4\r\n6jV2brP5vFY3g6iPAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBACTY3CCHC+Z28gCf\r\nFWGKQ3wAKs+k4+0yoti0qm2EKX7rSGQ0PHSas6uW79WstC4Rj+DYkDtIhGMSg8FS\r\nHVGZHGBCc0HwdX+BOAt3zi4p7Sf3oQef70\/4imPoKxbAVCpd\/cveVcFyDC19j1yB\r\nBapwu87oh+muoeaZxOlqQI4UxjBlR\/uRSMhOn2UGauIr3dWJgAF4pGt7TtIzt+1v\r\n0uA6FtN1Y4R5O8AaJPh1bIG0CVvFBE58esGzjEYLhOydgKFnEP94kVPgJD5ds9C3\r\npPhEpo1dRpiXaF7WGIV1X6DI\/ipWvfrF7CEy6I\/kP1InY\/vMDjQjeDnJ\/VrXIWXO\r\nyZvHXVaN\/m+1RlETsH7YO\/QmxRue9ZHN3gvvWtmpCeA95sfpepOk7UcHxHZYyQbF\r\n49\/au8j+5tsr4A83xzsT1JbcKRxkAaQ7WDJpOnE5O1+H0fB+BaLakTg6XX9d4Fo7\r\n7Gin7hVWX7pL+JIyxMzME3LhfI61+CRcqZQIrpyaafUziPQbWIPfEs7h8tCOWyvW\r\nUO8ZLervYCB3j44ivkrxPlcBklDCqqKKBzDP9dYOtS\/P4RB1NkHA9+NTvmBpTonS\r\nSFXdg9fFMD7VfjDE3Vnk+8DWkVH5wBYowTAD7w9Wuzr7DumiAULexnP\/Y7xwxLv7\r\n4B+pXTAcRK0zECDEaX3npS8xWzrB\r\n-----END CERTIFICATE-----"
 }';
                $this->fileAccessHelper
-                               ->expects($this->at(0))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/app//appinfo/signature.json'
-                               )
-                               ->willReturn($signatureDataFile);
-               $this->fileAccessHelper
-                               ->expects($this->at(1))
-                               ->method('file_get_contents')
-                               ->with(
-                                               '/resources/codesigning/root.crt'
-                               )
-                               ->willReturn(file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt'));
+                       ->expects($this->exactly(2))
+                       ->method('file_get_contents')
+                       ->withConsecutive(
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/app//appinfo/signature.json'],
+                               ['/resources/codesigning/root.crt'],
+                       )
+                       ->willReturnOnConsecutiveCalls(
+                               $signatureDataFile,
+                               file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')
+                       );
 
                $expected = [
                        'EXCEPTION' => [
@@ -292,19 +286,16 @@ class CheckerTest extends TestCase {
     "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUc\/0FxYrsgSs9rDxp03EJmbjN0NwwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIxMDMzM1oXDTE2MTEwMzIxMDMzM1owDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALb6EgHpkAqZbO5vRO8XSh7G7XGWHw5s\r\niOf4RwPXR6SE9bWZEm\/b72SfWk\/\/J6AbrD8WiOzBuT\/ODy6k5T1arEdHO+Pux0W1\r\nMxYJJI4kH74KKgMpC0SB0Rt+8WrMqV1r3hhJ46df6Xr\/xolP3oD+eLbShPcblhdS\r\nVtkZEkoev8Sh6L2wDCeHDyPxzvj1w2dTdGVO9Kztn0xIlyfEBakqvBWtcxyi3Ln0\r\nklnxlMx3tPDUE4kqvpia9qNiB1AN2PV93eNr5\/2riAzIssMFSCarWCx0AKYb54+d\r\nxLpcYFyqPJ0ydBCkF78DD45RCZet6PNYkdzgbqlUWEGGomkuDoJbBg4wzgzO0D77\r\nH87KFhYW8tKFFvF1V3AHl\/sFQ9tDHaxM9Y0pZ2jPp\/ccdiqnmdkBxBDqsiRvHvVB\r\nCn6qpb4vWGFC7vHOBfYspmEL1zLlKXZv3ezMZEZw7O9ZvUP3VO\/wAtd2vUW8UFiq\r\ns2v1QnNLN6jNh51obcwmrBvWhJy9vQIdtIjQbDxqWTHh1zUSrw9wrlklCBZ\/zrM0\r\ni8nfCFwTxWRxp3H9KoECzO\/zS5R5KIS7s3\/wq\/w9T2Ie4rcecgXwDizwnn0C\/aKc\r\nbDIjujpL1s9HO05pcD\/V3wKcPZ1izymBkmMyIbL52iRVN5FTVHeZdXPpFuq+CTQJ\r\nQ238lC+A\/KOVAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGoKTnh8RfJV4sQItVC2\r\nAvfJagkrIqZ3iiQTUBQGTKBsTnAqE1H7QgUSV9vSd+8rgvHkyZsRjmtyR1e3A6Ji\r\noNCXUbExC\/0iCPUqdHZIVb+Lc\/vWuv4ByFMybGPydgtLoEUX2ZrKFWmcgZFDUSRd\r\n9Uj26vtUhCC4bU4jgu6hIrR9IuxOBLQUxGTRZyAcXvj7obqRAEZwFAKQgFpfpqTb\r\nH+kjcbZSaAlLVSF7vBc1syyI8RGYbqpwvtREqJtl5IEIwe6huEqJ3zPnlP2th\/55\r\ncf3Fovj6JJgbb9XFxrdnsOsDOu\/tpnaRWlvv5ib4+SzG5wWFT5UUEo4Wg2STQiiX\r\nuVSRQxK1LE1yg84bs3NZk9FSQh4B8vZVuRr5FaJsZZkwlFlhRO\/\/+TJtXRbyNgsf\r\noMRZGi8DLGU2SGEAHcRH\/QZHq\/XDUWVzdxrSBYcy7GSpT7UDVzGv1rEJUrn5veP1\r\n0KmauAqtiIaYRm4f6YBsn0INcZxzIPZ0p8qFtVZBPeHhvQtvOt0iXI\/XUxEWOa2F\r\nK2EqhErgMK\/N07U1JJJay5tYZRtvkGq46oP\/5kQG8hYST0MDK6VihJoPpvCmAm4E\r\npEYKQ96x6A4EH9Y9mZlYozH\/eqmxPbTK8n89\/p7Ydun4rI+B2iiLnY8REWWy6+UQ\r\nV204fGUkJqW5CrKy3P3XvY9X\r\n-----END CERTIFICATE-----"
 }';
                $this->fileAccessHelper
-                               ->expects($this->at(0))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//appinfo/signature.json'
-                               )
-                               ->willReturn($signatureDataFile);
-               $this->fileAccessHelper
-                               ->expects($this->at(1))
-                               ->method('file_get_contents')
-                               ->with(
-                                               '/resources/codesigning/root.crt'
-                               )
-                               ->willReturn(file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt'));
+                       ->expects($this->exactly(2))
+                       ->method('file_get_contents')
+                       ->withConsecutive(
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//appinfo/signature.json'],
+                               ['/resources/codesigning/root.crt'],
+                       )
+                       ->willReturnOnConsecutiveCalls(
+                               $signatureDataFile,
+                               file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')
+                       );
 
 
                $expected = [
@@ -355,19 +346,16 @@ class CheckerTest extends TestCase {
     "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUc\/0FxYrsgSs9rDxp03EJmbjN0NwwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIxMDMzM1oXDTE2MTEwMzIxMDMzM1owDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALb6EgHpkAqZbO5vRO8XSh7G7XGWHw5s\r\niOf4RwPXR6SE9bWZEm\/b72SfWk\/\/J6AbrD8WiOzBuT\/ODy6k5T1arEdHO+Pux0W1\r\nMxYJJI4kH74KKgMpC0SB0Rt+8WrMqV1r3hhJ46df6Xr\/xolP3oD+eLbShPcblhdS\r\nVtkZEkoev8Sh6L2wDCeHDyPxzvj1w2dTdGVO9Kztn0xIlyfEBakqvBWtcxyi3Ln0\r\nklnxlMx3tPDUE4kqvpia9qNiB1AN2PV93eNr5\/2riAzIssMFSCarWCx0AKYb54+d\r\nxLpcYFyqPJ0ydBCkF78DD45RCZet6PNYkdzgbqlUWEGGomkuDoJbBg4wzgzO0D77\r\nH87KFhYW8tKFFvF1V3AHl\/sFQ9tDHaxM9Y0pZ2jPp\/ccdiqnmdkBxBDqsiRvHvVB\r\nCn6qpb4vWGFC7vHOBfYspmEL1zLlKXZv3ezMZEZw7O9ZvUP3VO\/wAtd2vUW8UFiq\r\ns2v1QnNLN6jNh51obcwmrBvWhJy9vQIdtIjQbDxqWTHh1zUSrw9wrlklCBZ\/zrM0\r\ni8nfCFwTxWRxp3H9KoECzO\/zS5R5KIS7s3\/wq\/w9T2Ie4rcecgXwDizwnn0C\/aKc\r\nbDIjujpL1s9HO05pcD\/V3wKcPZ1izymBkmMyIbL52iRVN5FTVHeZdXPpFuq+CTQJ\r\nQ238lC+A\/KOVAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGoKTnh8RfJV4sQItVC2\r\nAvfJagkrIqZ3iiQTUBQGTKBsTnAqE1H7QgUSV9vSd+8rgvHkyZsRjmtyR1e3A6Ji\r\noNCXUbExC\/0iCPUqdHZIVb+Lc\/vWuv4ByFMybGPydgtLoEUX2ZrKFWmcgZFDUSRd\r\n9Uj26vtUhCC4bU4jgu6hIrR9IuxOBLQUxGTRZyAcXvj7obqRAEZwFAKQgFpfpqTb\r\nH+kjcbZSaAlLVSF7vBc1syyI8RGYbqpwvtREqJtl5IEIwe6huEqJ3zPnlP2th\/55\r\ncf3Fovj6JJgbb9XFxrdnsOsDOu\/tpnaRWlvv5ib4+SzG5wWFT5UUEo4Wg2STQiiX\r\nuVSRQxK1LE1yg84bs3NZk9FSQh4B8vZVuRr5FaJsZZkwlFlhRO\/\/+TJtXRbyNgsf\r\noMRZGi8DLGU2SGEAHcRH\/QZHq\/XDUWVzdxrSBYcy7GSpT7UDVzGv1rEJUrn5veP1\r\n0KmauAqtiIaYRm4f6YBsn0INcZxzIPZ0p8qFtVZBPeHhvQtvOt0iXI\/XUxEWOa2F\r\nK2EqhErgMK\/N07U1JJJay5tYZRtvkGq46oP\/5kQG8hYST0MDK6VihJoPpvCmAm4E\r\npEYKQ96x6A4EH9Y9mZlYozH\/eqmxPbTK8n89\/p7Ydun4rI+B2iiLnY8REWWy6+UQ\r\nV204fGUkJqW5CrKy3P3XvY9X\r\n-----END CERTIFICATE-----"
 }';
                $this->fileAccessHelper
-                               ->expects($this->at(0))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//appinfo/signature.json'
-                               )
-                               ->willReturn($signatureDataFile);
-               $this->fileAccessHelper
-                               ->expects($this->at(1))
-                               ->method('file_get_contents')
-                               ->with(
-                                               '/resources/codesigning/root.crt'
-                               )
-                               ->willReturn(file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt'));
+                       ->expects($this->exactly(2))
+                       ->method('file_get_contents')
+                       ->withConsecutive(
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//appinfo/signature.json'],
+                               ['/resources/codesigning/root.crt'],
+                       )
+                       ->willReturnOnConsecutiveCalls(
+                               $signatureDataFile,
+                               file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')
+                       );
 
 
                $expected = [
@@ -419,17 +407,15 @@ class CheckerTest extends TestCase {
     "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIExjCCAq6gAwIBAgIUHSJjhJqMwr+3TkoiQFg4SVVYQ1gwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIzMjc1NVoXDTE2MTEwMzIzMjc1NVowFzEVMBMGA1UEAwwMQW5vdGhlclNjb3Bl\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA33npb5RmUkXrDT+TbwMf\r\n0zQ33SlzsjoGxCrbSwJOn6leGGInJ6ZrdzLL0WTi\/dTpg+Y\/JS+72XWm5NSjaTxo\r\n7OHc3cQBwXQj4tN6j\/y5qqY0GDLYufEkx2rpazqt9lBSJ72u1bGl2yoOXzYCz5i0\r\n60KsJXC9K44LKzGsarzbwAgskSVNkjAsPgjnCWZmcl6icpLi5Fz9rs2UMOWbdvdI\r\nAROsn0eC9E\/akmXTy5YMu6bAIGpvjZFHzyA83FQRbvv5o1V5Gsye\/VQLEgh7rqfz\r\nT\/jgWifP+JgoeB6otzuRZ3fFsmbBiyCIRtIOzQQflozhUlWtmiEGwg4GySuMUjEH\r\nA1LF86LO+ZzDQgd2oYNKmrQ8O+EcLqx9BpV4AFhEvqdk7uycJYPHs6yl+yfbzTeJ\r\n2Xd0yVAfd9r\/iDr36clLj2bzEObdl9xzKjcCIXE4Q0G4Pur41\/BJUDK9PI390ccQ\r\nnFjjVYBMsC859OwW64tMP0zkM9Vv72LCaEzaR8jqH0j11catqxunr+StfMcmxLTN\r\nbqBJbSEq4ER3mJxCTI2UrIVmdQ7+wRxgv3QTDNOZyqrz2L8A1Rpb3h0APxtQv+oA\r\n8KIZYID5\/qsS2V2jITkMQ8Nd1W3b0cZhZ600z+znh3jLJ0TYLvwN6\/qBQTUDaM2o\r\ng1+icMqXIXIeKuoPCVVsG7cCAwEAATANBgkqhkiG9w0BAQUFAAOCAgEAHc4F\/kOV\r\nHc8In5MmGg2YtjwZzjdeoC5TIPZczRqz0B+wRbJzN6aYryKZKLmP+wKpgRnJWDzp\r\nrgKGyyEQIAfK63DEv4B9p4N1B+B3aeMKsSpVcw7wbFTD57V5A7pURGoo31d0mw5L\r\nUIXZ2u+TUfGbzucMxLdFhTwjGpz9M6Kkm\/POxmV0tvLija5LdbdKnYR9BFmyu4IX\r\nqyoIAtComATNLl+3URu3SZxhE3NxhzMz+eAeNfh1KuIf2gWIIeDCXalVSJLym+OQ\r\nHFDpqRhJqfTMprrRlmmU7Zntgbj8\/RRZuXnBvH9cQ2KykLOb4UoCPlGUqOqKyP9m\r\nDJSFRiMJfpgMQUaJk1TLhKF+IR6FnmwURLEtkONJumtDQju9KaWPlhueONdyGi0p\r\nqxLVUo1Vb52XnPhk2GEEduxpDc9V5ePJ+pdcEdMifY\/uPNBRuBj2c87yq1DLH+U4\r\n3XzP1MlwjnBWZYuoFo0j6Jq0r\/MG6HjGdmkGIsRoheRi8Z8Scz5AW5QRkNz8pKop\r\nTELFqQy9g6TyQzzC8t6HZcpNe842ZUk4raEAbCZe\/XqxWMw5svPgNceBqM3fh7sZ\r\nBSykOHLaL8kiRO\/IS3y1yZEAuiWBvtxcTNLzBb+hdRpm2y8\/qH\/pKo+CMj1VzjNT\r\nD8YRQg0cjmDytJzHDrtV\/aTc9W1aPHun0vw=\r\n-----END CERTIFICATE-----"
 }';
                $this->fileAccessHelper
-                               ->expects($this->at(0))
-                               ->method('file_get_contents')
-                               ->with(\OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//appinfo/signature.json')
-                               ->willReturn($signatureDataFile);
-               $this->fileAccessHelper
-                               ->expects($this->at(1))
-                               ->method('file_get_contents')
-                               ->with(
-                                               '/resources/codesigning/root.crt'
-                               )
-                               ->willReturn(file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt'));
+                       ->expects($this->exactly(2))
+                       ->method('file_get_contents')
+                       ->withConsecutive(
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//appinfo/signature.json'],
+                               ['/resources/codesigning/root.crt'],
+                       )->willReturnOnConsecutiveCalls(
+                               $signatureDataFile,
+                               file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')
+                       );
 
                $expected = [
                        'EXCEPTION' => [
@@ -465,17 +451,15 @@ class CheckerTest extends TestCase {
     "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUc\/0FxYrsgSs9rDxp03EJmbjN0NwwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIxMDMzM1oXDTE2MTEwMzIxMDMzM1owDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALb6EgHpkAqZbO5vRO8XSh7G7XGWHw5s\r\niOf4RwPXR6SE9bWZEm\/b72SfWk\/\/J6AbrD8WiOzBuT\/ODy6k5T1arEdHO+Pux0W1\r\nMxYJJI4kH74KKgMpC0SB0Rt+8WrMqV1r3hhJ46df6Xr\/xolP3oD+eLbShPcblhdS\r\nVtkZEkoev8Sh6L2wDCeHDyPxzvj1w2dTdGVO9Kztn0xIlyfEBakqvBWtcxyi3Ln0\r\nklnxlMx3tPDUE4kqvpia9qNiB1AN2PV93eNr5\/2riAzIssMFSCarWCx0AKYb54+d\r\nxLpcYFyqPJ0ydBCkF78DD45RCZet6PNYkdzgbqlUWEGGomkuDoJbBg4wzgzO0D77\r\nH87KFhYW8tKFFvF1V3AHl\/sFQ9tDHaxM9Y0pZ2jPp\/ccdiqnmdkBxBDqsiRvHvVB\r\nCn6qpb4vWGFC7vHOBfYspmEL1zLlKXZv3ezMZEZw7O9ZvUP3VO\/wAtd2vUW8UFiq\r\ns2v1QnNLN6jNh51obcwmrBvWhJy9vQIdtIjQbDxqWTHh1zUSrw9wrlklCBZ\/zrM0\r\ni8nfCFwTxWRxp3H9KoECzO\/zS5R5KIS7s3\/wq\/w9T2Ie4rcecgXwDizwnn0C\/aKc\r\nbDIjujpL1s9HO05pcD\/V3wKcPZ1izymBkmMyIbL52iRVN5FTVHeZdXPpFuq+CTQJ\r\nQ238lC+A\/KOVAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGoKTnh8RfJV4sQItVC2\r\nAvfJagkrIqZ3iiQTUBQGTKBsTnAqE1H7QgUSV9vSd+8rgvHkyZsRjmtyR1e3A6Ji\r\noNCXUbExC\/0iCPUqdHZIVb+Lc\/vWuv4ByFMybGPydgtLoEUX2ZrKFWmcgZFDUSRd\r\n9Uj26vtUhCC4bU4jgu6hIrR9IuxOBLQUxGTRZyAcXvj7obqRAEZwFAKQgFpfpqTb\r\nH+kjcbZSaAlLVSF7vBc1syyI8RGYbqpwvtREqJtl5IEIwe6huEqJ3zPnlP2th\/55\r\ncf3Fovj6JJgbb9XFxrdnsOsDOu\/tpnaRWlvv5ib4+SzG5wWFT5UUEo4Wg2STQiiX\r\nuVSRQxK1LE1yg84bs3NZk9FSQh4B8vZVuRr5FaJsZZkwlFlhRO\/\/+TJtXRbyNgsf\r\noMRZGi8DLGU2SGEAHcRH\/QZHq\/XDUWVzdxrSBYcy7GSpT7UDVzGv1rEJUrn5veP1\r\n0KmauAqtiIaYRm4f6YBsn0INcZxzIPZ0p8qFtVZBPeHhvQtvOt0iXI\/XUxEWOa2F\r\nK2EqhErgMK\/N07U1JJJay5tYZRtvkGq46oP\/5kQG8hYST0MDK6VihJoPpvCmAm4E\r\npEYKQ96x6A4EH9Y9mZlYozH\/eqmxPbTK8n89\/p7Ydun4rI+B2iiLnY8REWWy6+UQ\r\nV204fGUkJqW5CrKy3P3XvY9X\r\n-----END CERTIFICATE-----"
 }';
                $this->fileAccessHelper
-                               ->expects($this->at(0))
-                               ->method('file_get_contents')
-                               ->with(\OC::$SERVERROOT . '/tests/data/integritycheck/app//appinfo/signature.json')
-                               ->willReturn($signatureDataFile);
-               $this->fileAccessHelper
-                               ->expects($this->at(1))
-                               ->method('file_get_contents')
-                               ->with(
-                                       '/resources/codesigning/root.crt'
-                               )
-                               ->willReturn(file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt'));
+                       ->expects($this->exactly(2))
+                       ->method('file_get_contents')
+                       ->withConsecutive(
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/app//appinfo/signature.json'],
+                               ['/resources/codesigning/root.crt'],
+                       )->willReturnOnConsecutiveCalls(
+                               $signatureDataFile,
+                               file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')
+                       );
 
                $this->assertSame([], $this->checker->verifyAppSignature('SomeApp'));
        }
@@ -486,11 +470,11 @@ class CheckerTest extends TestCase {
                $this->expectExceptionMessage('Exception message');
 
                $this->fileAccessHelper
-                       ->expects($this->at(0))
+                       ->expects($this->once())
                        ->method('assertDirectoryExists')
                        ->will($this->throwException(new \Exception('Exception message')));
                $this->fileAccessHelper
-                       ->expects($this->at(1))
+                       ->expects($this->once())
                        ->method('is_writable')
                        ->with(__DIR__ . '/core')
                        ->willReturn(true);
@@ -510,11 +494,11 @@ class CheckerTest extends TestCase {
                $this->expectExceptionMessageMatches('/[a-zA-Z\\/_-]+ is not writable/');
 
                $this->fileAccessHelper
-                       ->expects($this->at(0))
+                       ->expects($this->once())
                        ->method('assertDirectoryExists')
                        ->will($this->throwException(new \Exception('Exception message')));
                $this->fileAccessHelper
-                       ->expects($this->at(1))
+                       ->expects($this->once())
                        ->method('is_writable')
                        ->with(__DIR__ . '/core')
                        ->willReturn(false);
@@ -707,19 +691,15 @@ class CheckerTest extends TestCase {
     "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUc\/0FxYrsgSs9rDxp03EJmbjN0NwwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIxMDMzM1oXDTE2MTEwMzIxMDMzM1owDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALb6EgHpkAqZbO5vRO8XSh7G7XGWHw5s\r\niOf4RwPXR6SE9bWZEm\/b72SfWk\/\/J6AbrD8WiOzBuT\/ODy6k5T1arEdHO+Pux0W1\r\nMxYJJI4kH74KKgMpC0SB0Rt+8WrMqV1r3hhJ46df6Xr\/xolP3oD+eLbShPcblhdS\r\nVtkZEkoev8Sh6L2wDCeHDyPxzvj1w2dTdGVO9Kztn0xIlyfEBakqvBWtcxyi3Ln0\r\nklnxlMx3tPDUE4kqvpia9qNiB1AN2PV93eNr5\/2riAzIssMFSCarWCx0AKYb54+d\r\nxLpcYFyqPJ0ydBCkF78DD45RCZet6PNYkdzgbqlUWEGGomkuDoJbBg4wzgzO0D77\r\nH87KFhYW8tKFFvF1V3AHl\/sFQ9tDHaxM9Y0pZ2jPp\/ccdiqnmdkBxBDqsiRvHvVB\r\nCn6qpb4vWGFC7vHOBfYspmEL1zLlKXZv3ezMZEZw7O9ZvUP3VO\/wAtd2vUW8UFiq\r\ns2v1QnNLN6jNh51obcwmrBvWhJy9vQIdtIjQbDxqWTHh1zUSrw9wrlklCBZ\/zrM0\r\ni8nfCFwTxWRxp3H9KoECzO\/zS5R5KIS7s3\/wq\/w9T2Ie4rcecgXwDizwnn0C\/aKc\r\nbDIjujpL1s9HO05pcD\/V3wKcPZ1izymBkmMyIbL52iRVN5FTVHeZdXPpFuq+CTQJ\r\nQ238lC+A\/KOVAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGoKTnh8RfJV4sQItVC2\r\nAvfJagkrIqZ3iiQTUBQGTKBsTnAqE1H7QgUSV9vSd+8rgvHkyZsRjmtyR1e3A6Ji\r\noNCXUbExC\/0iCPUqdHZIVb+Lc\/vWuv4ByFMybGPydgtLoEUX2ZrKFWmcgZFDUSRd\r\n9Uj26vtUhCC4bU4jgu6hIrR9IuxOBLQUxGTRZyAcXvj7obqRAEZwFAKQgFpfpqTb\r\nH+kjcbZSaAlLVSF7vBc1syyI8RGYbqpwvtREqJtl5IEIwe6huEqJ3zPnlP2th\/55\r\ncf3Fovj6JJgbb9XFxrdnsOsDOu\/tpnaRWlvv5ib4+SzG5wWFT5UUEo4Wg2STQiiX\r\nuVSRQxK1LE1yg84bs3NZk9FSQh4B8vZVuRr5FaJsZZkwlFlhRO\/\/+TJtXRbyNgsf\r\noMRZGi8DLGU2SGEAHcRH\/QZHq\/XDUWVzdxrSBYcy7GSpT7UDVzGv1rEJUrn5veP1\r\n0KmauAqtiIaYRm4f6YBsn0INcZxzIPZ0p8qFtVZBPeHhvQtvOt0iXI\/XUxEWOa2F\r\nK2EqhErgMK\/N07U1JJJay5tYZRtvkGq46oP\/5kQG8hYST0MDK6VihJoPpvCmAm4E\r\npEYKQ96x6A4EH9Y9mZlYozH\/eqmxPbTK8n89\/p7Ydun4rI+B2iiLnY8REWWy6+UQ\r\nV204fGUkJqW5CrKy3P3XvY9X\r\n-----END CERTIFICATE-----"
 }';
                $this->fileAccessHelper
-                               ->expects($this->at(0))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/app//core/signature.json'
-                               )
-                               ->willReturn($signatureDataFile);
-               $this->fileAccessHelper
-                               ->expects($this->at(1))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/app//resources/codesigning/root.crt'
-                               )
-                               ->willReturn(file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt'));
+                       ->expects($this->exactly(2))
+                       ->method('file_get_contents')
+                       ->withConsecutive(
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/app//core/signature.json'],
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/app//resources/codesigning/root.crt'],
+                       )->willReturnOnConsecutiveCalls(
+                               $signatureDataFile,
+                               file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')
+                       );
 
                $this->assertSame([], $this->checker->verifyCoreSignature());
        }
@@ -748,19 +728,16 @@ class CheckerTest extends TestCase {
     "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUc\/0FxYrsgSs9rDxp03EJmbjN0NwwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIxMDMzM1oXDTE2MTEwMzIxMDMzM1owDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALb6EgHpkAqZbO5vRO8XSh7G7XGWHw5s\r\niOf4RwPXR6SE9bWZEm\/b72SfWk\/\/J6AbrD8WiOzBuT\/ODy6k5T1arEdHO+Pux0W1\r\nMxYJJI4kH74KKgMpC0SB0Rt+8WrMqV1r3hhJ46df6Xr\/xolP3oD+eLbShPcblhdS\r\nVtkZEkoev8Sh6L2wDCeHDyPxzvj1w2dTdGVO9Kztn0xIlyfEBakqvBWtcxyi3Ln0\r\nklnxlMx3tPDUE4kqvpia9qNiB1AN2PV93eNr5\/2riAzIssMFSCarWCx0AKYb54+d\r\nxLpcYFyqPJ0ydBCkF78DD45RCZet6PNYkdzgbqlUWEGGomkuDoJbBg4wzgzO0D77\r\nH87KFhYW8tKFFvF1V3AHl\/sFQ9tDHaxM9Y0pZ2jPp\/ccdiqnmdkBxBDqsiRvHvVB\r\nCn6qpb4vWGFC7vHOBfYspmEL1zLlKXZv3ezMZEZw7O9ZvUP3VO\/wAtd2vUW8UFiq\r\ns2v1QnNLN6jNh51obcwmrBvWhJy9vQIdtIjQbDxqWTHh1zUSrw9wrlklCBZ\/zrM0\r\ni8nfCFwTxWRxp3H9KoECzO\/zS5R5KIS7s3\/wq\/w9T2Ie4rcecgXwDizwnn0C\/aKc\r\nbDIjujpL1s9HO05pcD\/V3wKcPZ1izymBkmMyIbL52iRVN5FTVHeZdXPpFuq+CTQJ\r\nQ238lC+A\/KOVAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGoKTnh8RfJV4sQItVC2\r\nAvfJagkrIqZ3iiQTUBQGTKBsTnAqE1H7QgUSV9vSd+8rgvHkyZsRjmtyR1e3A6Ji\r\noNCXUbExC\/0iCPUqdHZIVb+Lc\/vWuv4ByFMybGPydgtLoEUX2ZrKFWmcgZFDUSRd\r\n9Uj26vtUhCC4bU4jgu6hIrR9IuxOBLQUxGTRZyAcXvj7obqRAEZwFAKQgFpfpqTb\r\nH+kjcbZSaAlLVSF7vBc1syyI8RGYbqpwvtREqJtl5IEIwe6huEqJ3zPnlP2th\/55\r\ncf3Fovj6JJgbb9XFxrdnsOsDOu\/tpnaRWlvv5ib4+SzG5wWFT5UUEo4Wg2STQiiX\r\nuVSRQxK1LE1yg84bs3NZk9FSQh4B8vZVuRr5FaJsZZkwlFlhRO\/\/+TJtXRbyNgsf\r\noMRZGi8DLGU2SGEAHcRH\/QZHq\/XDUWVzdxrSBYcy7GSpT7UDVzGv1rEJUrn5veP1\r\n0KmauAqtiIaYRm4f6YBsn0INcZxzIPZ0p8qFtVZBPeHhvQtvOt0iXI\/XUxEWOa2F\r\nK2EqhErgMK\/N07U1JJJay5tYZRtvkGq46oP\/5kQG8hYST0MDK6VihJoPpvCmAm4E\r\npEYKQ96x6A4EH9Y9mZlYozH\/eqmxPbTK8n89\/p7Ydun4rI+B2iiLnY8REWWy6+UQ\r\nV204fGUkJqW5CrKy3P3XvY9X\r\n-----END CERTIFICATE-----"
 }';
                $this->fileAccessHelper
-                       ->expects($this->at(0))
+                       ->expects($this->exactly(2))
                        ->method('file_get_contents')
-                       ->with(
-                               \OC::$SERVERROOT . '/tests/data/integritycheck/htaccessWithValidModifiedContent/core/signature.json'
-                       )
-                       ->willReturn($signatureDataFile);
-               $this->fileAccessHelper
-                       ->expects($this->at(1))
-                       ->method('file_get_contents')
-                       ->with(
-                               \OC::$SERVERROOT . '/tests/data/integritycheck/htaccessWithValidModifiedContent/resources/codesigning/root.crt'
+                       ->withConsecutive(
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/htaccessWithValidModifiedContent/core/signature.json'],
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/htaccessWithValidModifiedContent/resources/codesigning/root.crt'],
                        )
-                       ->willReturn(file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt'));
+                       ->willReturnOnConsecutiveCalls(
+                               $signatureDataFile,
+                               file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')
+                       );
 
                $this->assertSame([], $this->checker->verifyCoreSignature());
        }
@@ -841,19 +818,15 @@ class CheckerTest extends TestCase {
     "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUc\/0FxYrsgSs9rDxp03EJmbjN0NwwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIxMDMzM1oXDTE2MTEwMzIxMDMzM1owDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALb6EgHpkAqZbO5vRO8XSh7G7XGWHw5s\r\niOf4RwPXR6SE9bWZEm\/b72SfWk\/\/J6AbrD8WiOzBuT\/ODy6k5T1arEdHO+Pux0W1\r\nMxYJJI4kH74KKgMpC0SB0Rt+8WrMqV1r3hhJ46df6Xr\/xolP3oD+eLbShPcblhdS\r\nVtkZEkoev8Sh6L2wDCeHDyPxzvj1w2dTdGVO9Kztn0xIlyfEBakqvBWtcxyi3Ln0\r\nklnxlMx3tPDUE4kqvpia9qNiB1AN2PV93eNr5\/2riAzIssMFSCarWCx0AKYb54+d\r\nxLpcYFyqPJ0ydBCkF78DD45RCZet6PNYkdzgbqlUWEGGomkuDoJbBg4wzgzO0D77\r\nH87KFhYW8tKFFvF1V3AHl\/sFQ9tDHaxM9Y0pZ2jPp\/ccdiqnmdkBxBDqsiRvHvVB\r\nCn6qpb4vWGFC7vHOBfYspmEL1zLlKXZv3ezMZEZw7O9ZvUP3VO\/wAtd2vUW8UFiq\r\ns2v1QnNLN6jNh51obcwmrBvWhJy9vQIdtIjQbDxqWTHh1zUSrw9wrlklCBZ\/zrM0\r\ni8nfCFwTxWRxp3H9KoECzO\/zS5R5KIS7s3\/wq\/w9T2Ie4rcecgXwDizwnn0C\/aKc\r\nbDIjujpL1s9HO05pcD\/V3wKcPZ1izymBkmMyIbL52iRVN5FTVHeZdXPpFuq+CTQJ\r\nQ238lC+A\/KOVAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGoKTnh8RfJV4sQItVC2\r\nAvfJagkrIqZ3iiQTUBQGTKBsTnAqE1H7QgUSV9vSd+8rgvHkyZsRjmtyR1e3A6Ji\r\noNCXUbExC\/0iCPUqdHZIVb+Lc\/vWuv4ByFMybGPydgtLoEUX2ZrKFWmcgZFDUSRd\r\n9Uj26vtUhCC4bU4jgu6hIrR9IuxOBLQUxGTRZyAcXvj7obqRAEZwFAKQgFpfpqTb\r\nH+kjcbZSaAlLVSF7vBc1syyI8RGYbqpwvtREqJtl5IEIwe6huEqJ3zPnlP2th\/55\r\ncf3Fovj6JJgbb9XFxrdnsOsDOu\/tpnaRWlvv5ib4+SzG5wWFT5UUEo4Wg2STQiiX\r\nuVSRQxK1LE1yg84bs3NZk9FSQh4B8vZVuRr5FaJsZZkwlFlhRO\/\/+TJtXRbyNgsf\r\noMRZGi8DLGU2SGEAHcRH\/QZHq\/XDUWVzdxrSBYcy7GSpT7UDVzGv1rEJUrn5veP1\r\n0KmauAqtiIaYRm4f6YBsn0INcZxzIPZ0p8qFtVZBPeHhvQtvOt0iXI\/XUxEWOa2F\r\nK2EqhErgMK\/N07U1JJJay5tYZRtvkGq46oP\/5kQG8hYST0MDK6VihJoPpvCmAm4E\r\npEYKQ96x6A4EH9Y9mZlYozH\/eqmxPbTK8n89\/p7Ydun4rI+B2iiLnY8REWWy6+UQ\r\nV204fGUkJqW5CrKy3P3XvY9X\r\n-----END CERTIFICATE-----"
 }';
                $this->fileAccessHelper
-                               ->expects($this->at(0))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/app//core/signature.json'
-                               )
-                               ->willReturn($signatureDataFile);
-               $this->fileAccessHelper
-                               ->expects($this->at(1))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/app//resources/codesigning/root.crt'
-                               )
-                               ->willReturn(file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt'));
+                       ->expects($this->exactly(2))
+                       ->method('file_get_contents')
+                       ->withConsecutive(
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/app//core/signature.json'],
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/app//resources/codesigning/root.crt'],
+                       )->willReturnOnConsecutiveCalls(
+                               $signatureDataFile,
+                               file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')
+                       );
 
                $this->assertSame([], $this->checker->verifyCoreSignature());
        }
@@ -882,19 +855,15 @@ class CheckerTest extends TestCase {
     "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUc\/0FxYrsgSs9rDxp03EJmbjN0NwwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIxMDMzM1oXDTE2MTEwMzIxMDMzM1owDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALb6EgHpkAqZbO5vRO8XSh7G7XGWHw5s\r\niOf4RwPXR6SE9bWZEm\/b72SfWk\/\/J6AbrD8WiOzBuT\/ODy6k5T1arEdHO+Pux0W1\r\nMxYJJI4kH74KKgMpC0SB0Rt+8WrMqV1r3hhJ46df6Xr\/xolP3oD+eLbShPcblhdS\r\nVtkZEkoev8Sh6L2wDCeHDyPxzvj1w2dTdGVO9Kztn0xIlyfEBakqvBWtcxyi3Ln0\r\nklnxlMx3tPDUE4kqvpia9qNiB1AN2PV93eNr5\/2riAzIssMFSCarWCx0AKYb54+d\r\nxLpcYFyqPJ0ydBCkF78DD45RCZet6PNYkdzgbqlUWEGGomkuDoJbBg4wzgzO0D77\r\nH87KFhYW8tKFFvF1V3AHl\/sFQ9tDHaxM9Y0pZ2jPp\/ccdiqnmdkBxBDqsiRvHvVB\r\nCn6qpb4vWGFC7vHOBfYspmEL1zLlKXZv3ezMZEZw7O9ZvUP3VO\/wAtd2vUW8UFiq\r\ns2v1QnNLN6jNh51obcwmrBvWhJy9vQIdtIjQbDxqWTHh1zUSrw9wrlklCBZ\/zrM0\r\ni8nfCFwTxWRxp3H9KoECzO\/zS5R5KIS7s3\/wq\/w9T2Ie4rcecgXwDizwnn0C\/aKc\r\nbDIjujpL1s9HO05pcD\/V3wKcPZ1izymBkmMyIbL52iRVN5FTVHeZdXPpFuq+CTQJ\r\nQ238lC+A\/KOVAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGoKTnh8RfJV4sQItVC2\r\nAvfJagkrIqZ3iiQTUBQGTKBsTnAqE1H7QgUSV9vSd+8rgvHkyZsRjmtyR1e3A6Ji\r\noNCXUbExC\/0iCPUqdHZIVb+Lc\/vWuv4ByFMybGPydgtLoEUX2ZrKFWmcgZFDUSRd\r\n9Uj26vtUhCC4bU4jgu6hIrR9IuxOBLQUxGTRZyAcXvj7obqRAEZwFAKQgFpfpqTb\r\nH+kjcbZSaAlLVSF7vBc1syyI8RGYbqpwvtREqJtl5IEIwe6huEqJ3zPnlP2th\/55\r\ncf3Fovj6JJgbb9XFxrdnsOsDOu\/tpnaRWlvv5ib4+SzG5wWFT5UUEo4Wg2STQiiX\r\nuVSRQxK1LE1yg84bs3NZk9FSQh4B8vZVuRr5FaJsZZkwlFlhRO\/\/+TJtXRbyNgsf\r\noMRZGi8DLGU2SGEAHcRH\/QZHq\/XDUWVzdxrSBYcy7GSpT7UDVzGv1rEJUrn5veP1\r\n0KmauAqtiIaYRm4f6YBsn0INcZxzIPZ0p8qFtVZBPeHhvQtvOt0iXI\/XUxEWOa2F\r\nK2EqhErgMK\/N07U1JJJay5tYZRtvkGq46oP\/5kQG8hYST0MDK6VihJoPpvCmAm4E\r\npEYKQ96x6A4EH9Y9mZlYozH\/eqmxPbTK8n89\/p7Ydun4rI+B2iiLnY8REWWy6+UQ\r\nV204fGUkJqW5CrKy3P3XvY9X\r\n-----END CERTIFICATE-----"
 }';
                $this->fileAccessHelper
-                               ->expects($this->at(0))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//core/signature.json'
-                               )
-                               ->willReturn($signatureDataFile);
-               $this->fileAccessHelper
-                               ->expects($this->at(1))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//resources/codesigning/root.crt'
-                               )
-                               ->willReturn(file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt'));
+                       ->expects($this->exactly(2))
+                       ->method('file_get_contents')
+                       ->withConsecutive(
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//core/signature.json'],
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//resources/codesigning/root.crt'],
+                       )->willReturnOnConsecutiveCalls(
+                               $signatureDataFile,
+                               file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')
+                       );
 
                $expected = [
                        'EXCEPTION' => [
@@ -929,19 +898,15 @@ class CheckerTest extends TestCase {
     "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUc\/0FxYrsgSs9rDxp03EJmbjN0NwwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIxMDMzM1oXDTE2MTEwMzIxMDMzM1owDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALb6EgHpkAqZbO5vRO8XSh7G7XGWHw5s\r\niOf4RwPXR6SE9bWZEm\/b72SfWk\/\/J6AbrD8WiOzBuT\/ODy6k5T1arEdHO+Pux0W1\r\nMxYJJI4kH74KKgMpC0SB0Rt+8WrMqV1r3hhJ46df6Xr\/xolP3oD+eLbShPcblhdS\r\nVtkZEkoev8Sh6L2wDCeHDyPxzvj1w2dTdGVO9Kztn0xIlyfEBakqvBWtcxyi3Ln0\r\nklnxlMx3tPDUE4kqvpia9qNiB1AN2PV93eNr5\/2riAzIssMFSCarWCx0AKYb54+d\r\nxLpcYFyqPJ0ydBCkF78DD45RCZet6PNYkdzgbqlUWEGGomkuDoJbBg4wzgzO0D77\r\nH87KFhYW8tKFFvF1V3AHl\/sFQ9tDHaxM9Y0pZ2jPp\/ccdiqnmdkBxBDqsiRvHvVB\r\nCn6qpb4vWGFC7vHOBfYspmEL1zLlKXZv3ezMZEZw7O9ZvUP3VO\/wAtd2vUW8UFiq\r\ns2v1QnNLN6jNh51obcwmrBvWhJy9vQIdtIjQbDxqWTHh1zUSrw9wrlklCBZ\/zrM0\r\ni8nfCFwTxWRxp3H9KoECzO\/zS5R5KIS7s3\/wq\/w9T2Ie4rcecgXwDizwnn0C\/aKc\r\nbDIjujpL1s9HO05pcD\/V3wKcPZ1izymBkmMyIbL52iRVN5FTVHeZdXPpFuq+CTQJ\r\nQ238lC+A\/KOVAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGoKTnh8RfJV4sQItVC2\r\nAvfJagkrIqZ3iiQTUBQGTKBsTnAqE1H7QgUSV9vSd+8rgvHkyZsRjmtyR1e3A6Ji\r\noNCXUbExC\/0iCPUqdHZIVb+Lc\/vWuv4ByFMybGPydgtLoEUX2ZrKFWmcgZFDUSRd\r\n9Uj26vtUhCC4bU4jgu6hIrR9IuxOBLQUxGTRZyAcXvj7obqRAEZwFAKQgFpfpqTb\r\nH+kjcbZSaAlLVSF7vBc1syyI8RGYbqpwvtREqJtl5IEIwe6huEqJ3zPnlP2th\/55\r\ncf3Fovj6JJgbb9XFxrdnsOsDOu\/tpnaRWlvv5ib4+SzG5wWFT5UUEo4Wg2STQiiX\r\nuVSRQxK1LE1yg84bs3NZk9FSQh4B8vZVuRr5FaJsZZkwlFlhRO\/\/+TJtXRbyNgsf\r\noMRZGi8DLGU2SGEAHcRH\/QZHq\/XDUWVzdxrSBYcy7GSpT7UDVzGv1rEJUrn5veP1\r\n0KmauAqtiIaYRm4f6YBsn0INcZxzIPZ0p8qFtVZBPeHhvQtvOt0iXI\/XUxEWOa2F\r\nK2EqhErgMK\/N07U1JJJay5tYZRtvkGq46oP\/5kQG8hYST0MDK6VihJoPpvCmAm4E\r\npEYKQ96x6A4EH9Y9mZlYozH\/eqmxPbTK8n89\/p7Ydun4rI+B2iiLnY8REWWy6+UQ\r\nV204fGUkJqW5CrKy3P3XvY9X\r\n-----END CERTIFICATE-----"
 }';
                $this->fileAccessHelper
-                               ->expects($this->at(0))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//core/signature.json'
-                               )
-                               ->willReturn($signatureDataFile);
-               $this->fileAccessHelper
-                               ->expects($this->at(1))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//resources/codesigning/root.crt'
-                               )
-                               ->willReturn(file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt'));
+                       ->expects($this->exactly(2))
+                       ->method('file_get_contents')
+                       ->withConsecutive(
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//core/signature.json'],
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//resources/codesigning/root.crt'],
+                       )->willReturnOnConsecutiveCalls(
+                               $signatureDataFile,
+                               file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')
+                       );
 
                $expected = [
                        'INVALID_HASH' => [
@@ -991,19 +956,15 @@ class CheckerTest extends TestCase {
     "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUPYoweUxCPqbDW4ntuh7QvgyqSrgwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIyNDIwNloXDTE2MTEwMzIyNDIwNlowDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJui3nDbjOIjxNnthdBZplphujsN6u8K\r\nQ\/62zAuSwzXVp0+3IMgM\/2sepklVE8YfCyVJ5+SUJqnqHoUWVRVfs8jL0wW6nrHM\r\n\/lsscAguWCee4iAdNOqI9kq4+DUau8J45e62XA9mrAo\/8\/NKzFE2y2WduDoQZcm+\r\n8+dwcUUHXw2jl8dfrmvEMYSqTNDdb4rGmQpeV+dr9BLqr+x03U1Q08qCG9j7mSOz\r\ncvJENjOvC5uzAh5LCuCgxqG4o+mPzB0FtNnwoRRu6IsF3Y3KacRqPc30fB\/iXDn5\r\nBPr14uNxTTYWoZJ1F0tZrLzRbXdjJJOC+dnQurTtXWZ8WjPB1BWQYK7fW6t82mkN\r\n2Qe2xen99gs9nX5yY\/sHM3TKSJdM7AVCEv\/emW3gNjkvWTtRlN\/Nc7X2ckNwXcvo\r\n0yi3fSPjzXpDgLbhp1FzrMlHDn1VzmRT3r8wLByWa\/hsxrJDsBzwunMJYhXhmeKb\r\n3wX0tN\/EUJTWBntpwVOIGnRPD51oBoQUOMaEAq\/kz8PgN181bWZkJbRuf+FWkijQ\r\no+HR2lVF1jWXXst5Uc+s9HN81Uly7X4O9MMg0QxT4+wymtGDs6AOkwMi9rgBTrRB\r\n3tLU3XL2UIwRXgmd8cPtTu\/I6Bm7LdyaYtZ3yJTxRewq3nZdWypqBhD8uhpIYVkf\r\no4bxmGkVAQVTAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAKKAX5EHgU1grODnJ0of\r\nspFpgB1K67YvclNUyuU6NQ6zBJx1\/w1RnM7uxLcxiiWj1BbUhwZQ0ojmEHeUyi6O\r\nGrDVajwhTccDMmja3u5adhEncx65\/H+lD85IPRRkS2qBDssMDdJHhZ0uI+40nI7M\r\nMq1kFjl+6wiuqZXqps66DuLbk45g\/ZlrFIrIo3Ix5vj0OVqwT+gO4LYirJK6KgVS\r\nUttbcEsc\/yKU9ThnM8\/n4m2jstZXfzKPgOsJrQcZrFOtpj+CWmBzVElBSPlDT3Nh\r\nHSgOeTFJ8bQBxj2iG5dLA+JZJQKxyJ1gy2ZtxIJ2GyvLtSe8NUSqvfPWOaAKEUV2\r\ngniytnEFLr+PcD+9EGux6jZNuj6HmtWVThTfD5VGFmtlVU2z71ZRYY0kn6J3mmFc\r\nS2ecEcCUwqG5YNLncEUCyZhC2klWql2SHyGctCEyWWY7ikIDjVzYt2EbcFvLNBnP\r\ntybN1TYHRRZxlug00CCoOE9EZfk46FkZpDvU6KmqJRofkNZ5sj+SffyGcwYwNrDH\r\nKqe8m+9lHf3CRTIDeMu8r2xl1I6M6ZZfjabbmVP9Jd6WN4s6f1FlXDWzhlT1N0Qw\r\nGzJj6xB+SPtS3UV05tBlvbfA4e06D5G9uD7Q8ONcINtMS0xsSJ2oo82AqlpvlF\/q\r\noj7YKHsaTVGA+FxBktZHfoxD\r\n-----END CERTIFICATE-----"
 }';
                $this->fileAccessHelper
-                               ->expects($this->at(0))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/app//core/signature.json'
-                               )
-                               ->willReturn($signatureDataFile);
-               $this->fileAccessHelper
-                               ->expects($this->at(1))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/app//resources/codesigning/root.crt'
-                               )
-                               ->willReturn(file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt'));
+                       ->expects($this->exactly(2))
+                       ->method('file_get_contents')
+                       ->withConsecutive(
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/app//core/signature.json'],
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/app//resources/codesigning/root.crt'],
+                       )->willReturnOnConsecutiveCalls(
+                               $signatureDataFile,
+                               file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')
+                       );
 
                $expected = [
                        'EXCEPTION' => [
@@ -1038,19 +999,15 @@ class CheckerTest extends TestCase {
     "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEwTCCAqmgAwIBAgIUWv0iujufs5lUr0svCf\/qTQvoyKAwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIyNDk1M1oXDTE2MTEwMzIyNDk1M1owEjEQMA4GA1UEAwwHU29tZUFwcDCCAiIw\r\nDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK8q0x62agGSRBqeWsaeEwFfepMk\r\nF8cAobMMi50qHCv9IrOn\/ZH9l52xBrbIkErVmRjmly0d4JhD8Ymhidsh9ONKYl\/j\r\n+ishsZDM8eNNdp3Ew+fEYVvY1W7mR1qU24NWj0bzVsClI7hvPVIuw7AjfBDq1C5+\r\nA+ZSLSXYvOK2cEWjdxQfuNZwEZSjmA63DUllBIrm35IaTvfuyhU6BW9yHZxmb8+M\r\nw0xDv30D5UkE\/2N7Pa\/HQJLxCR+3zKibRK3nUyRDLSXxMkU9PnFNaPNX59VPgyj4\r\nGB1CFSToldJVPF4pzh7p36uGXZVxs8m3LFD4Ol8mhi7jkxDZjqFN46gzR0r23Py6\r\ndol9vfawGIoUwp9LvL0S7MvdRY0oazLXwClLP4OQ17zpSMAiCj7fgNT661JamPGj\r\nt5O7Zn2wA7I4ddDS\/HDTWCu98Zwc9fHIpsJPgCZ9awoqxi4Mnf7Pk9g5nnXhszGC\r\ncxxIASQKM+GhdzoRxKknax2RzUCwCzcPRtCj8AQT\/x\/mqN3PfRmlnFBNACUw9bpZ\r\nSOoNq2pCF9igftDWpSIXQ38pVpKLWowjjg3DVRmVKBgivHnUnVLyzYBahHPj0vaz\r\ntFtUFRaqXDnt+4qyUGyrT5h5pjZaTcHIcSB4PiarYwdVvgslgwnQzOUcGAzRWBD4\r\n6jV2brP5vFY3g6iPAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBACTY3CCHC+Z28gCf\r\nFWGKQ3wAKs+k4+0yoti0qm2EKX7rSGQ0PHSas6uW79WstC4Rj+DYkDtIhGMSg8FS\r\nHVGZHGBCc0HwdX+BOAt3zi4p7Sf3oQef70\/4imPoKxbAVCpd\/cveVcFyDC19j1yB\r\nBapwu87oh+muoeaZxOlqQI4UxjBlR\/uRSMhOn2UGauIr3dWJgAF4pGt7TtIzt+1v\r\n0uA6FtN1Y4R5O8AaJPh1bIG0CVvFBE58esGzjEYLhOydgKFnEP94kVPgJD5ds9C3\r\npPhEpo1dRpiXaF7WGIV1X6DI\/ipWvfrF7CEy6I\/kP1InY\/vMDjQjeDnJ\/VrXIWXO\r\nyZvHXVaN\/m+1RlETsH7YO\/QmxRue9ZHN3gvvWtmpCeA95sfpepOk7UcHxHZYyQbF\r\n49\/au8j+5tsr4A83xzsT1JbcKRxkAaQ7WDJpOnE5O1+H0fB+BaLakTg6XX9d4Fo7\r\n7Gin7hVWX7pL+JIyxMzME3LhfI61+CRcqZQIrpyaafUziPQbWIPfEs7h8tCOWyvW\r\nUO8ZLervYCB3j44ivkrxPlcBklDCqqKKBzDP9dYOtS\/P4RB1NkHA9+NTvmBpTonS\r\nSFXdg9fFMD7VfjDE3Vnk+8DWkVH5wBYowTAD7w9Wuzr7DumiAULexnP\/Y7xwxLv7\r\n4B+pXTAcRK0zECDEaX3npS8xWzrB\r\n-----END CERTIFICATE-----"
 }';
                $this->fileAccessHelper
-                               ->expects($this->at(0))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/app//core/signature.json'
-                               )
-                               ->willReturn($signatureDataFile);
-               $this->fileAccessHelper
-                               ->expects($this->at(1))
-                               ->method('file_get_contents')
-                               ->with(
-                                               \OC::$SERVERROOT . '/tests/data/integritycheck/app//resources/codesigning/root.crt'
-                               )
-                               ->willReturn(file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt'));
+                       ->expects($this->exactly(2))
+                       ->method('file_get_contents')
+                       ->withConsecutive(
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/app//core/signature.json'],
+                               [\OC::$SERVERROOT . '/tests/data/integritycheck/app//resources/codesigning/root.crt'],
+                       )->willReturnOnConsecutiveCalls(
+                               $signatureDataFile,
+                               file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')
+                       );
 
                $expected = [
                        'EXCEPTION' => [
@@ -1079,10 +1036,10 @@ class CheckerTest extends TestCase {
                        ->getMock();
 
                $this->checker
-                       ->expects($this->at(0))
+                       ->expects($this->once())
                        ->method('verifyCoreSignature');
                $this->appLocator
-                       ->expects($this->at(0))
+                       ->expects($this->once())
                        ->method('getAllApps')
                        ->willReturn([
                                'files',
@@ -1091,57 +1048,47 @@ class CheckerTest extends TestCase {
                                'dav',
                        ]);
                $this->appManager
-                       ->expects($this->at(0))
+                       ->expects($this->exactly(4))
                        ->method('isShipped')
-                       ->with('files')
-                       ->willReturn(true);
+                       ->withConsecutive(
+                               ['files'],
+                               ['calendar'],
+                               ['contacts'],
+                               ['dav'],
+                       )->willReturnOnConsecutiveCalls(
+                               true,
+                               false,
+                               false,
+                               true,
+                       );
                $this->checker
-                       ->expects($this->at(1))
+                       ->expects($this->exactly(3))
                        ->method('verifyAppSignature')
-                       ->with('files');
-               $this->appManager
-                       ->expects($this->at(1))
-                       ->method('isShipped')
-                       ->with('calendar')
-                       ->willReturn(false);
+                       ->withConsecutive(
+                               ['files'],
+                               ['calendar'],
+                               ['dav'],
+                       );
                $this->appLocator
-                       ->expects($this->at(1))
+                       ->expects($this->exactly(2))
                        ->method('getAppPath')
-                       ->with('calendar')
-                       ->willReturn('/apps/calendar');
+                       ->withConsecutive(
+                               ['calendar'],
+                               ['contacts'],
+                       )->willReturnOnConsecutiveCalls(
+                               '/apps/calendar',
+                               '/apps/contacts',
+                       );
                $this->fileAccessHelper
-                       ->expects($this->at(0))
+                       ->expects($this->exactly(2))
                        ->method('file_exists')
-                       ->with('/apps/calendar/appinfo/signature.json')
-                       ->willReturn(true);
-               $this->checker
-                       ->expects($this->at(2))
-                       ->method('verifyAppSignature')
-                       ->with('calendar');
-               $this->appManager
-                               ->expects($this->at(2))
-                               ->method('isShipped')
-                               ->with('contacts')
-                               ->willReturn(false);
-               $this->appLocator
-                               ->expects($this->at(2))
-                               ->method('getAppPath')
-                               ->with('contacts')
-                               ->willReturn('/apps/contacts');
-               $this->fileAccessHelper
-                               ->expects($this->at(1))
-                               ->method('file_exists')
-                               ->with('/apps/contacts/appinfo/signature.json')
-                               ->willReturn(false);
-               $this->appManager
-                       ->expects($this->at(3))
-                       ->method('isShipped')
-                       ->with('dav')
-                       ->willReturn(true);
-               $this->checker
-                       ->expects($this->at(3))
-                       ->method('verifyAppSignature')
-                       ->with('dav');
+                       ->withConsecutive(
+                               ['/apps/calendar/appinfo/signature.json'],
+                               ['/apps/contacts/appinfo/signature.json'],
+                       )->willReturnOnConsecutiveCalls(
+                               true,
+                               false,
+                       );
                $this->config
                        ->expects($this->once())
                        ->method('deleteAppValue')
index a2c1e8b526114fd92b45712a961b3a6e374c8324..faf9dff48cc1e480f461cba0f1b7ed904daeacc0 100644 (file)
@@ -105,20 +105,26 @@ class FactoryTest extends TestCase {
        public function testFindLanguageWithNotExistingRequestLanguageAndExistingStoredUserLanguage(): void {
                $factory = $this->getFactory(['languageExists']);
                $this->invokePrivate($factory, 'requestLanguage', ['de']);
-               $factory->expects(self::at(0))
+               $factory->expects($this->exactly(2))
                                ->method('languageExists')
-                               ->with('MyApp', 'de')
-                               ->willReturn(false);
+                               ->withConsecutive(
+                                       ['MyApp', 'de'],
+                                       ['MyApp', 'jp'],
+                               )
+                               ->willReturnOnConsecutiveCalls(
+                                       false,
+                                       true,
+                               );
                $this->config
-                       ->expects(self::at(0))
+                       ->expects($this->exactly(2))
                        ->method('getSystemValue')
-                       ->with('force_language', false)
-                       ->willReturn(false);
-               $this->config
-                       ->expects(self::at(1))
-                       ->method('getSystemValue')
-                       ->with('installed', false)
-                       ->willReturn(true);
+                       ->withConsecutive(
+                               ['force_language', false],
+                               ['installed', false],
+                       )->willReturnOnConsecutiveCalls(
+                               false,
+                               true,
+                       );
                $user = $this->getMockBuilder(IUser::class)
                        ->getMock();
                $user->expects(self::once())
@@ -133,10 +139,6 @@ class FactoryTest extends TestCase {
                                ->method('getUserValue')
                                ->with('MyUserUid', 'core', 'lang', null)
                                ->willReturn('jp');
-               $factory->expects(self::at(1))
-                               ->method('languageExists')
-                               ->with('MyApp', 'jp')
-                               ->willReturn(true);
 
                self::assertSame('jp', $factory->findLanguage('MyApp'));
        }