From cab44b6311d9ea51ac33e1382e65ddd0bedd95e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Wed, 23 Dec 2020 14:14:00 +0100 Subject: [PATCH 1/3] Run oci tests against phpunit9/php8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- .github/workflows/oci.yml | 6 +++--- tests/lib/TestCase.php | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/oci.yml b/.github/workflows/oci.yml index 04d1dfdbab7cd..6a97a49bcb619 100644 --- a/.github/workflows/oci.yml +++ b/.github/workflows/oci.yml @@ -15,7 +15,7 @@ jobs: # do not stop on another job's failure fail-fast: false matrix: - php-versions: [ '7.4' ] + php-versions: [ '8.0' ] databases: [ 'oci' ] name: php${{ matrix.php-versions }}-${{ matrix.databases }} @@ -41,8 +41,8 @@ jobs: uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-versions }} - extensions: ctype,curl,dom,fileinfo,gd,iconv,intl,json,mbstring,oci8,openssl,pdo_sqlite,posix,sqlite,xml,zip - tools: phpunit:8.5.2 + extensions: ctype,curl,dom,fileinfo,gd,iconv,imagick,intl,json,mbstring,oci8,openssl,pdo_sqlite,posix,sqlite,xml,zip + tools: phpunit:9 coverage: none - name: Set up Nextcloud diff --git a/tests/lib/TestCase.php b/tests/lib/TestCase.php index b5dcd76faf90e..11bfd750387b2 100644 --- a/tests/lib/TestCase.php +++ b/tests/lib/TestCase.php @@ -33,6 +33,7 @@ use OCP\IDBConnection; use OCP\IL10N; use OCP\Security\ISecureRandom; +use PHPUnit\Util\Test; abstract class TestCase extends \PHPUnit\Framework\TestCase { /** @var \OC\Command\QueueBus */ From 1e266e8b38df76cfecdbff50b431e2dfb272ddf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Tue, 5 Jan 2021 17:21:14 +0100 Subject: [PATCH 2/3] Run oci against all php versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- .github/workflows/oci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/oci.yml b/.github/workflows/oci.yml index 6a97a49bcb619..382ba4dafec2a 100644 --- a/.github/workflows/oci.yml +++ b/.github/workflows/oci.yml @@ -12,10 +12,9 @@ jobs: runs-on: ubuntu-20.04 strategy: - # do not stop on another job's failure fail-fast: false matrix: - php-versions: [ '8.0' ] + php-versions: [ '7.3', '7.4', '8.0' ] databases: [ 'oci' ] name: php${{ matrix.php-versions }}-${{ matrix.databases }} From 9161f6ca4aa43c7f65208ee50adcea24484c2b78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Thu, 1 Apr 2021 16:19:16 +0200 Subject: [PATCH 3/3] Remove tests that just prove mocked calls and don't actually validate anything useful MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- tests/lib/Security/CredentialsManagerTest.php | 81 ------------------- tests/lib/TestCase.php | 1 - 2 files changed, 82 deletions(-) diff --git a/tests/lib/Security/CredentialsManagerTest.php b/tests/lib/Security/CredentialsManagerTest.php index 3335e18a8b1f5..f81db3306405a 100644 --- a/tests/lib/Security/CredentialsManagerTest.php +++ b/tests/lib/Security/CredentialsManagerTest.php @@ -24,92 +24,11 @@ namespace Test\Security; -use OC\Security\CredentialsManager; -use OCP\DB\IResult; -use OCP\DB\QueryBuilder\IExpressionBuilder; -use OCP\DB\QueryBuilder\IQueryBuilder; -use OCP\IDBConnection; -use OCP\Security\ICrypto; - /** * @group DB */ class CredentialsManagerTest extends \Test\TestCase { - /** @var ICrypto */ - protected $crypto; - - /** @var IDBConnection */ - protected $dbConnection; - - /** @var CredentialsManager */ - protected $manager; - - protected function setUp(): void { - parent::setUp(); - $this->crypto = $this->createMock(ICrypto::class); - $this->dbConnection = $this->getMockBuilder(IDBConnection::class) - ->disableOriginalConstructor() - ->getMock(); - $this->manager = new CredentialsManager($this->crypto, $this->dbConnection); - } - - private function getQueryResult($row) { - $result = $this->createMock(IResult::class); - - $result->expects($this->any()) - ->method('fetch') - ->willReturn($row); - - return $result; - } - - public function testStore() { - $userId = 'abc'; - $identifier = 'foo'; - $credentials = 'bar'; - - $this->crypto->expects($this->once()) - ->method('encrypt') - ->with(json_encode($credentials)) - ->willReturn('baz'); - - $this->dbConnection->expects($this->once()) - ->method('setValues') - ->with(CredentialsManager::DB_TABLE, - ['user' => $userId, 'identifier' => $identifier], - ['credentials' => 'baz'] - ); - - $this->manager->store($userId, $identifier, $credentials); - } - - public function testRetrieve() { - $userId = 'abc'; - $identifier = 'foo'; - - $this->crypto->expects($this->once()) - ->method('decrypt') - ->with('baz') - ->willReturn(json_encode('bar')); - - $eb = $this->createMock(IExpressionBuilder::class); - $qb = $this->createMock(IQueryBuilder::class); - $qb->method('select')->willReturnSelf(); - $qb->method('from')->willReturnSelf(); - $qb->method('where')->willReturnSelf(); - $qb->method('expr')->willReturn($eb); - $qb->expects($this->once()) - ->method('execute') - ->willReturn($this->getQueryResult(['credentials' => 'baz'])); - - $this->dbConnection->expects($this->once()) - ->method('getQueryBuilder') - ->willReturn($qb); - - $this->manager->retrieve($userId, $identifier); - } - /** * @dataProvider credentialsProvider */ diff --git a/tests/lib/TestCase.php b/tests/lib/TestCase.php index 11bfd750387b2..b5dcd76faf90e 100644 --- a/tests/lib/TestCase.php +++ b/tests/lib/TestCase.php @@ -33,7 +33,6 @@ use OCP\IDBConnection; use OCP\IL10N; use OCP\Security\ISecureRandom; -use PHPUnit\Util\Test; abstract class TestCase extends \PHPUnit\Framework\TestCase { /** @var \OC\Command\QueueBus */