OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
firebase
/
vendor
/
kreait
/
firebase-php
/
tests
/
Unit
/
Database
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
08/12/2024 10:35:44 AM
rwxr-xr-x
📄
ApiClientTest.php
2.6 KB
08/12/2024 10:35:41 AM
rw-r--r--
📁
Query
-
08/12/2024 10:36:42 AM
rwxr-xr-x
📄
QueryTest.php
4.12 KB
08/12/2024 10:35:41 AM
rw-r--r--
📁
Reference
-
08/12/2024 10:36:28 AM
rwxr-xr-x
📄
ReferenceTest.php
5.08 KB
08/12/2024 10:35:41 AM
rw-r--r--
📄
RuleSetTest.php
562 bytes
08/12/2024 10:35:41 AM
rw-r--r--
📄
SnapshotTest.php
3.87 KB
08/12/2024 10:35:41 AM
rw-r--r--
📄
TransactionTest.php
2.32 KB
08/12/2024 10:35:41 AM
rw-r--r--
Editing: TransactionTest.php
Close
<?php declare(strict_types=1); namespace Kreait\Firebase\Tests\Unit\Database; use GuzzleHttp\Psr7\Uri; use Kreait\Firebase\Database\ApiClient; use Kreait\Firebase\Database\Reference; use Kreait\Firebase\Database\Transaction; use Kreait\Firebase\Exception\Database\DatabaseError; use Kreait\Firebase\Exception\Database\ReferenceHasNotBeenSnapshotted; use Kreait\Firebase\Exception\Database\TransactionFailed; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Throwable; /** * @internal */ final class TransactionTest extends TestCase { /** @var ApiClient&MockObject */ private $apiClient; private Transaction $transaction; protected function setUp(): void { $this->apiClient = $this->createMock(ApiClient::class); $this->transaction = new Transaction($this->apiClient); } public function testAReferenceCanNotBeChangedIfItHasNotBeenSnapshotted(): void { $reference = $this->createMock(Reference::class); try { $this->transaction->set($reference, 'does not matter'); } catch (ReferenceHasNotBeenSnapshotted $e) { $this->assertSame($reference, $e->getReference()); } catch (Throwable $e) { $this->fail('A '.ReferenceHasNotBeenSnapshotted::class.' should have been thrown'); } } public function testATransactionCanFail(): void { $reference = $this->createMock(Reference::class); $reference->method('getUri')->willReturn($uri = new Uri('https://domain.tld')); $this->apiClient ->method('getWithETag') ->with($uri) ->willReturn(['etag' => 'etag', 'value' => 'old value']) ; $this->apiClient ->method('setWithEtag') ->with($uri) ->willThrowException(new DatabaseError()) ; $this->transaction->snapshot($reference); try { $this->transaction->set($reference, 'new value'); $this->fail('An exception should have been thrown'); } catch (TransactionFailed $e) { $this->assertSame($reference, $e->getReference()); } catch (Throwable $e) { $this->fail('A '.TransactionFailed::class.' should have been thrown'); } } }