From ac487a3c7da9d24fc4689d3ddf4ec95782edca38 Mon Sep 17 00:00:00 2001 From: Jens Schulze Date: Fri, 30 Sep 2016 10:16:59 +0200 Subject: [PATCH] feat(Filter): add method to create a subtree filter with an array of IDs Closes #257 --- .../Product/Search/FilterSubtreeCollection.php | 17 +++++++++++++++++ .../Model/Product/Search/FilterSubtreeTest.php | 6 ++++++ 2 files changed, 23 insertions(+) diff --git a/src/Model/Product/Search/FilterSubtreeCollection.php b/src/Model/Product/Search/FilterSubtreeCollection.php index 7da245734a..ab3c3f5a97 100644 --- a/src/Model/Product/Search/FilterSubtreeCollection.php +++ b/src/Model/Product/Search/FilterSubtreeCollection.php @@ -6,6 +6,7 @@ namespace Commercetools\Core\Model\Product\Search; use Commercetools\Core\Model\Common\Collection; +use Commercetools\Core\Model\Common\Context; /** * @package Commercetools\Core\Model\Product\Search @@ -26,4 +27,20 @@ public function __toString() } return implode(',', $values); } + + /** + * @param array $ids + * @param Context|null $context + * @return FilterSubtreeCollection + */ + public static function ofIds(array $ids, Context $context = null) + { + $collection = static::of($context); + + foreach ($ids as $id) { + $collection->add(FilterSubtree::ofId($id)); + } + + return $collection; + } } diff --git a/tests/unit/Model/Product/Search/FilterSubtreeTest.php b/tests/unit/Model/Product/Search/FilterSubtreeTest.php index ed57df85e7..f8cd45abdd 100644 --- a/tests/unit/Model/Product/Search/FilterSubtreeTest.php +++ b/tests/unit/Model/Product/Search/FilterSubtreeTest.php @@ -23,6 +23,12 @@ public function testDefaultType() $this->assertSame('subtree("12345"),subtree("abcde")', (string)$subtrees); } + public function testCollectionIds() + { + $subtrees = FilterSubtreeCollection::ofIds(['12345', 'abcde']); + $this->assertSame('subtree("12345"),subtree("abcde")', (string)$subtrees); + } + public function testIntValue() { $subtree = FilterSubtree::ofId(12345);