fixed painful issues on tests that generated random errors on positions
This commit is contained in:
@@ -24,7 +24,9 @@ use Thelia\Core\Event\UpdatePositionEvent;
|
|||||||
use Thelia\Model\ContentFolder;
|
use Thelia\Model\ContentFolder;
|
||||||
use Thelia\Model\ContentFolderQuery;
|
use Thelia\Model\ContentFolderQuery;
|
||||||
use Thelia\Model\ContentQuery;
|
use Thelia\Model\ContentQuery;
|
||||||
|
use Thelia\Model\Folder;
|
||||||
use Thelia\Model\FolderQuery;
|
use Thelia\Model\FolderQuery;
|
||||||
|
use Thelia\Model\Map\ContentFolderTableMap;
|
||||||
use Thelia\Tests\TestCaseWithURLToolSetup;
|
use Thelia\Tests\TestCaseWithURLToolSetup;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -167,6 +169,7 @@ class ContentTest extends TestCaseWithURLToolSetup
|
|||||||
public function testUpdatePositionUp()
|
public function testUpdatePositionUp()
|
||||||
{
|
{
|
||||||
$content = ContentQuery::create()
|
$content = ContentQuery::create()
|
||||||
|
->filterByFolder($this->getFolderForPositionTest(), Criteria::IN)
|
||||||
->filterByPosition(1, Criteria::GREATER_THAN)
|
->filterByPosition(1, Criteria::GREATER_THAN)
|
||||||
->findOne();
|
->findOne();
|
||||||
|
|
||||||
@@ -190,6 +193,7 @@ class ContentTest extends TestCaseWithURLToolSetup
|
|||||||
public function testUpdatePositionDown()
|
public function testUpdatePositionDown()
|
||||||
{
|
{
|
||||||
$content = ContentQuery::create()
|
$content = ContentQuery::create()
|
||||||
|
->filterByFolder($this->getFolderForPositionTest())
|
||||||
->filterByPosition(1)
|
->filterByPosition(1)
|
||||||
->findOne();
|
->findOne();
|
||||||
|
|
||||||
@@ -213,6 +217,7 @@ class ContentTest extends TestCaseWithURLToolSetup
|
|||||||
public function testUpdatePositionWithSpecificPosition()
|
public function testUpdatePositionWithSpecificPosition()
|
||||||
{
|
{
|
||||||
$content = ContentQuery::create()
|
$content = ContentQuery::create()
|
||||||
|
->filterByFolder($this->getFolderForPositionTest())
|
||||||
->filterByPosition(1, Criteria::GREATER_THAN)
|
->filterByPosition(1, Criteria::GREATER_THAN)
|
||||||
->findOne();
|
->findOne();
|
||||||
|
|
||||||
@@ -296,6 +301,34 @@ class ContentTest extends TestCaseWithURLToolSetup
|
|||||||
return $content;
|
return $content;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get a folder that has enough content to execute position tests
|
||||||
|
*
|
||||||
|
* @return Folder the folder
|
||||||
|
*/
|
||||||
|
protected function getFolderForPositionTest()
|
||||||
|
{
|
||||||
|
$content = ContentFolderQuery::create()
|
||||||
|
->filterByDefaultFolder(true)
|
||||||
|
->withColumn('count(' . ContentFolderTableMap::FOLDER_ID . ')', 'nb')
|
||||||
|
->groupBy('FolderId')
|
||||||
|
->having('count(' . ContentFolderTableMap::FOLDER_ID . ') >= ?', 3, \PDO::PARAM_INT)
|
||||||
|
->select(array('FolderId', 'nb'))
|
||||||
|
->findOne()
|
||||||
|
;
|
||||||
|
|
||||||
|
if (null === $content) {
|
||||||
|
$this->fail('use fixtures before launching test, there is not enough content in database');
|
||||||
|
}
|
||||||
|
|
||||||
|
$folder = FolderQuery::create()->findPK($content["FolderId"]);
|
||||||
|
if (null === $folder) {
|
||||||
|
$this->fail('use fixtures before launching test, there is no folder in database');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $folder;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return \Thelia\Model\Folder
|
* @return \Thelia\Model\Folder
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ use Thelia\Core\Event\Folder\FolderUpdateEvent;
|
|||||||
use Thelia\Core\Event\UpdatePositionEvent;
|
use Thelia\Core\Event\UpdatePositionEvent;
|
||||||
use Thelia\Core\Event\UpdateSeoEvent;
|
use Thelia\Core\Event\UpdateSeoEvent;
|
||||||
use Thelia\Model\FolderQuery;
|
use Thelia\Model\FolderQuery;
|
||||||
|
use Thelia\Model\Map\FolderTableMap;
|
||||||
use Thelia\Tests\TestCaseWithURLToolSetup;
|
use Thelia\Tests\TestCaseWithURLToolSetup;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -200,6 +201,7 @@ class FolderTest extends TestCaseWithURLToolSetup
|
|||||||
public function testUpdatePositionUp()
|
public function testUpdatePositionUp()
|
||||||
{
|
{
|
||||||
$folder = FolderQuery::create()
|
$folder = FolderQuery::create()
|
||||||
|
->filterByParent($this->getFolderIdForPositionTest())
|
||||||
->filterByPosition(1, Criteria::GREATER_THAN)
|
->filterByPosition(1, Criteria::GREATER_THAN)
|
||||||
->findOne();
|
->findOne();
|
||||||
|
|
||||||
@@ -223,6 +225,7 @@ class FolderTest extends TestCaseWithURLToolSetup
|
|||||||
public function testUpdatePositionDown()
|
public function testUpdatePositionDown()
|
||||||
{
|
{
|
||||||
$nextFolder = FolderQuery::create()
|
$nextFolder = FolderQuery::create()
|
||||||
|
->filterByParent($this->getFolderIdForPositionTest())
|
||||||
->filterByPosition(2)
|
->filterByPosition(2)
|
||||||
->findOne();
|
->findOne();
|
||||||
|
|
||||||
@@ -255,6 +258,7 @@ class FolderTest extends TestCaseWithURLToolSetup
|
|||||||
public function testUpdatePositionWithSpecificPosition()
|
public function testUpdatePositionWithSpecificPosition()
|
||||||
{
|
{
|
||||||
$folder = FolderQuery::create()
|
$folder = FolderQuery::create()
|
||||||
|
->filterByParent($this->getFolderIdForPositionTest())
|
||||||
->filterByPosition(1, Criteria::GREATER_THAN)
|
->filterByPosition(1, Criteria::GREATER_THAN)
|
||||||
->findOne();
|
->findOne();
|
||||||
|
|
||||||
@@ -274,6 +278,27 @@ class FolderTest extends TestCaseWithURLToolSetup
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get a folder parent id that has enough folder to execute position tests
|
||||||
|
*
|
||||||
|
* @return int the folder id
|
||||||
|
*/
|
||||||
|
protected function getFolderIdForPositionTest()
|
||||||
|
{
|
||||||
|
$f = FolderQuery::create()
|
||||||
|
->withColumn('count(' . FolderTableMap::PARENT . ')', 'nb')
|
||||||
|
->groupBy('Parent')
|
||||||
|
->having('count(' . FolderTableMap::PARENT . ') > ?', 3, \PDO::PARAM_INT)
|
||||||
|
->select(array('Parent', 'nb'))
|
||||||
|
->findOne();
|
||||||
|
|
||||||
|
if (null === $f) {
|
||||||
|
$this->fail('use fixtures before launching test, there is no folder in database');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $f["Parent"];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return \Thelia\Model\Folder
|
* @return \Thelia\Model\Folder
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user