Spaces:
No application file
No application file
namespace Mautic\IntegrationsBundle\Tests\Unit\Entity; | |
use Doctrine\DBAL\Query\QueryBuilder; | |
use Mautic\CoreBundle\Test\Doctrine\RepositoryConfiguratorTrait; | |
use Mautic\IntegrationsBundle\Entity\FieldChange; | |
use Mautic\IntegrationsBundle\Entity\FieldChangeRepository; | |
use Mautic\LeadBundle\Entity\Company; | |
use PHPUnit\Framework\TestCase; | |
class FieldChangeRepositoryTest extends TestCase | |
{ | |
use RepositoryConfiguratorTrait; | |
private FieldChangeRepository $repository; | |
protected function setUp(): void | |
{ | |
parent::setUp(); | |
$this->repository = $this->configureRepository(FieldChange::class); | |
$this->connection->method('createQueryBuilder')->willReturnCallback(fn () => new QueryBuilder($this->connection)); | |
} | |
public function testWhereQueryPartForFindingChangesForSingleObject(): void | |
{ | |
$integration = 'test'; | |
$objectType = 'foobar'; | |
$objectId = 5; | |
$this->connection->expects($this->once()) | |
->method('executeQuery') | |
->with( | |
'SELECT * FROM '.MAUTIC_TABLE_PREFIX.'sync_object_field_change_report f WHERE (f.integration = :integration) AND (f.object_type = :objectType) AND (f.object_id = :objectId) ORDER BY f.modified_at ASC', | |
[ | |
'integration' => $integration, | |
'objectType' => $objectType, | |
'objectId' => $objectId, | |
] | |
); | |
$this->repository->findChangesForObject($integration, $objectType, $objectId); | |
} | |
public function testDeleteEntitiesForObject(): void | |
{ | |
$this->connection->expects($this->once()) | |
->method('executeStatement') | |
->with( | |
'DELETE FROM '.MAUTIC_TABLE_PREFIX.'sync_object_field_change_report WHERE (object_type = :objectType) AND (object_id = :objectId)', | |
[ | |
'objectType' => Company::class, | |
'objectId' => 123, | |
] | |
)->willReturn(1); | |
$this->repository->deleteEntitiesForObject(123, Company::class); | |
} | |
} | |