From 8d56563dfc54e3d8881224fb8e7ddac8c925fe00 Mon Sep 17 00:00:00 2001 From: Benjamin Perche Date: Fri, 4 Jul 2014 16:57:38 +0200 Subject: [PATCH] =?UTF-8?q?Begin=20FormatterData=20=09modifi=C3=A9:=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20core/lib/Thelia/Core/FileFormat/Formatter/?= =?UTF-8?q?FormatterData.php=20=09nouveau=20fichier:=20core/lib/Thelia/Tes?= =?UTF-8?q?ts/FileFormat/Formatter/FormatterDataTest.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FileFormat/Formatter/FormatterData.php | 28 ++++++-- .../Formatter/FormatterDataTest.php | 70 +++++++++++++++++++ 2 files changed, 93 insertions(+), 5 deletions(-) create mode 100644 core/lib/Thelia/Tests/FileFormat/Formatter/FormatterDataTest.php diff --git a/core/lib/Thelia/Core/FileFormat/Formatter/FormatterData.php b/core/lib/Thelia/Core/FileFormat/Formatter/FormatterData.php index a74ecef90..0a7ed344d 100644 --- a/core/lib/Thelia/Core/FileFormat/Formatter/FormatterData.php +++ b/core/lib/Thelia/Core/FileFormat/Formatter/FormatterData.php @@ -12,6 +12,8 @@ namespace Thelia\Core\FileFormat\Formatter; use Propel\Runtime\ActiveQuery\ModelCriteria; +use Propel\Runtime\Collection\ArrayCollection; +use Propel\Runtime\Collection\ObjectCollection; use Thelia\Core\Translation\Translator; /** @@ -34,15 +36,31 @@ class FormatterData public function loadModelCriteria(ModelCriteria $criteria) { - - $propelData = - $criteria - ->find() - ; + $propelData = $criteria->find(); if (empty($propelData)) { return null; } + $asColumns = $propelData->getFormatter()->getAsColumns(); + + if (empty($asColumns) && $propelData instanceof ObjectCollection) { + /** + * Full request ( without select nor join ) + */ + } elseif (empty($asColumns) && $propelData instanceof ArrayCollection) { + /** + * Request with joins, but without select + */ + } elseif (count($asColumns) > 1) { + /** + * Request with multiple select + */ + } elseif (count($asColumns) === 1) { + /** + * Request with one select + */ + } + } } diff --git a/core/lib/Thelia/Tests/FileFormat/Formatter/FormatterDataTest.php b/core/lib/Thelia/Tests/FileFormat/Formatter/FormatterDataTest.php new file mode 100644 index 000000000..369e2bc41 --- /dev/null +++ b/core/lib/Thelia/Tests/FileFormat/Formatter/FormatterDataTest.php @@ -0,0 +1,70 @@ + + */ +class FormatterDataTest extends \PHPUnit_Framework_TestCase +{ + + protected $data; + + public function setUp() + { + new Translator(new Container()); + $this->data = new FormatterData(); + + $query = ProductQuery::create() + ->filterById([3,4,5], Criteria::IN); + + $this->data->loadModelCriteria($query); + + $query = ProductSaleElementsQuery::create() + ->joinProduct() + ->select(["ProductSaleElements.id", "Product.id"]) + ->filterById([3,4,5], Criteria::IN) + ; + + $this->data->loadModelCriteria($query); + + $query = ProductSaleElementsQuery::create() + ->joinProduct() + ->select(["ProductSaleElements.id"]) + ->filterById([3,4,5], Criteria::IN) + ; + + $this->data->loadModelCriteria($query); + + $query = ProductQuery::create() + ->joinProductSaleElements() + ->filterById([3,4,5], Criteria::IN); + + $this->data->loadModelCriteria($query); + } + + public function testA() + { + + } +}