From d9c3ab3eef11984d6dedd3558ddfba117a4846ac Mon Sep 17 00:00:00 2001 From: Lukasz Falda Date: Mon, 20 Jul 2020 16:17:10 +0200 Subject: [PATCH] Fix setting 'false' as filter --- src/LuigisBoxBundle/ValueObject/SearchUrlBuilder.php | 4 ++-- tests/Unit/ValueObject/SearchUrlBuilderTest.php | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/LuigisBoxBundle/ValueObject/SearchUrlBuilder.php b/src/LuigisBoxBundle/ValueObject/SearchUrlBuilder.php index 9257fc6..fbd1f68 100644 --- a/src/LuigisBoxBundle/ValueObject/SearchUrlBuilder.php +++ b/src/LuigisBoxBundle/ValueObject/SearchUrlBuilder.php @@ -127,7 +127,7 @@ public function addFilter(string $key, $value): self if (\is_string($this->filters[$key])) { $this->filters[$key] = [$this->filters[$key]]; } - $this->filters[$key][] = (string) $value; + $this->filters[$key][] = (string) (false === $value ? '0' : $value); $this->filters[$key] = array_unique($this->filters[$key]); @@ -167,7 +167,7 @@ public function addMustFilter(string $key, $value): self if (\is_string($this->mustFilters[$key])) { $this->mustFilters[$key] = [$this->mustFilters[$key]]; } - $this->mustFilters[$key][] = (string) $value; + $this->mustFilters[$key][] = (string) (false === $value ? '0' : $value); $this->mustFilters[$key] = array_unique($this->mustFilters[$key]); diff --git a/tests/Unit/ValueObject/SearchUrlBuilderTest.php b/tests/Unit/ValueObject/SearchUrlBuilderTest.php index 0337267..ec0776e 100644 --- a/tests/Unit/ValueObject/SearchUrlBuilderTest.php +++ b/tests/Unit/ValueObject/SearchUrlBuilderTest.php @@ -49,6 +49,14 @@ public function buildValidUrlTest(): void ]; $this->assertOk($query, $searchBuilder); + $searchBuilder->addFilter('available', false); + $query['f[]'] = [ + 'category:Top & Top', + 'category:Jeans', + 'available:0', + ]; + $this->assertOk($query, $searchBuilder); + $searchBuilder->resetFilters(); $searchBuilder->setFilters( [