Files
kupshop/bundles/KupShop/UserBundle/Test/UserImportTest.php
2025-08-02 16:30:27 +02:00

70 lines
1.9 KiB
PHP

<?php
namespace KupShop\UserBundle\Test;
use KupShop\KupShopBundle\Util\Compat\ServiceContainer;
use KupShop\UserBundle\Util\UserImporter;
use Query\Operator;
class UserImportTest extends \DatabaseTestCase
{
public function getDataSet()
{
return $this->getJsonDataSetFromFile();
}
/**
* @var UserImporter
*/
protected $userImporter;
protected function setEnvironment()
{
$this->userImporter = ServiceContainer::getService(UserImporter::class);
}
public function testImportInsertUser()
{
$this->setEnvironment();
$xmlResponse = file_get_contents(__DIR__.'/UserImportTest.xml');
// BEFORE ACTION
$insertBefore = $this->getData('customupdate@wpj.cz');
$this->assertCount(0, $insertBefore);
$this->userImporter->importUsers($xmlResponse);
// AFTER ACTION
$insertAfter = $this->getData('customupdate@wpj.cz');
$this->assertCount(1, $insertAfter);
}
public function testImportUpdateUser()
{
$this->setEnvironment();
$xmlResponse = file_get_contents(__DIR__.'/UserImportTest.xml');
// BEFORE ACTION
$updateBefore = $this->getData('wpj@wpj.cz');
$this->assertEquals('Test', $updateBefore[0]['name']);
$this->assertEquals('Wpj', $updateBefore[0]['surname']);
$this->userImporter->importUsers($xmlResponse);
// AFTER ACTION
$updateAfter = $this->getData('wpj@wpj.cz');
$this->assertEquals('TestPoImportu', $updateAfter[0]['name']);
$this->assertEquals('WpjPoImportu', $updateAfter[0]['surname']);
}
private function getData($email, $selector = '*')
{
return sqlQueryBuilder()
->select($selector)
->from('users')
->andWhere(Operator::equals(['email' => $email]))
->groupBy('email')
->execute()->fetchAll();
}
}