Skip to content

Commit

Permalink
test: add Builder mock to work around PHPUnit deprecation
Browse files Browse the repository at this point in the history
  • Loading branch information
JaZo committed Feb 25, 2025
1 parent 325dd58 commit ea2d65a
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 9 deletions.
20 changes: 11 additions & 9 deletions tests/EncryptedModelTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@

namespace Swis\Laravel\Encrypted\Tests;

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Connection;
use Swis\Laravel\Encrypted\EncryptedModel;
use Swis\Laravel\Encrypted\Tests\_mocks\Builder;

class EncryptedModelTest extends TestCase
{
Expand Down Expand Up @@ -79,11 +80,15 @@ public function itEncryptsDataOnInsert(): void
// arrange
$attributes = ['secret' => 'secret'];

/** @var \PHPUnit\Framework\MockObject\MockObject&\Illuminate\Database\Connection $connection */
$connection = $this->createMock(Connection::class);
$connection->method('getName')
->willReturn('foo');

/** @var \PHPUnit\Framework\MockObject\MockObject&\Illuminate\Database\Eloquent\Builder $query */
$query = $this->getMockBuilder(Builder::class)
->disableOriginalConstructor()
->addMethods(['getConnection', 'insertGetId'])
->getMock();
$query = $this->createMock(Builder::class);
$query->method('getConnection')
->willReturn($connection);
$query->expects($this->once())
->method('insertGetId')
->with($this->logicalNot($this->equalTo($attributes)), 'id')
Expand All @@ -106,10 +111,7 @@ public function itEncryptsDataOnUpdate(): void
$attributes = ['secret' => 'secret'];

/** @var \PHPUnit\Framework\MockObject\MockObject&\Illuminate\Database\Eloquent\Builder $query */
$query = $this->getMockBuilder(Builder::class)
->disableOriginalConstructor()
->onlyMethods(['where', 'update'])
->getMock();
$query = $this->createMock(Builder::class);
$query->method('where')
->willReturnSelf();
$query->expects($this->once())
Expand Down
18 changes: 18 additions & 0 deletions tests/_mocks/Builder.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php

namespace Swis\Laravel\Encrypted\Tests\_mocks;

use Illuminate\Database\ConnectionInterface;

class Builder extends \Illuminate\Database\Eloquent\Builder
{
public function insertGetId(array $values, $sequence = null): int
{
return $this->toBase()->insertGetId($values, $sequence);
}

public function getConnection(): ConnectionInterface
{
return $this->toBase()->getConnection();
}
}

0 comments on commit ea2d65a

Please sign in to comment.