public function testGetFacetNames() { $facetGroup = new FacetGroup(123, 'FacetGroup'); $this->assertEquals('', $facetGroup->getFacetNames()); $facetGroup->addFacet(new Facet(456, 'Foo', 'foo', 123, 'FacetGroup')); $this->assertEquals('Foo', $facetGroup->getFacetNames()); $this->assertEquals('Foo', $facetGroup->getFacetNames(',')); $facetGroup->addFacet(new Facet(789, 'Bar', 'bar', 123, 'FacetGroup')); $this->assertEquals('Foo/Bar', $facetGroup->getFacetNames()); $this->assertEquals('Foo,Bar', $facetGroup->getFacetNames(',')); }
protected function genLazyGroups() { $groups = array(); foreach ($this->ids as $groupId => $facetIds) { $group = new FacetGroup($groupId, null); foreach ($facetIds as $facetId) { $facet = new Facet($facetId, null, null, $groupId, null); $group->addFacet($facet); } $groups[$groupId] = $group; } return $groups; }
public function testFilterByVarientFacets() { $criteria = ProductSearchCriteria::create('12345')->filterByFacetIds(array(0 => array(264))); $this->assertEquals('{"session_id":"12345","filter":{"facets":{"0":[264]}}}', json_encode($criteria->toArray())); $criteria->filterByFacetIds(array(2 => array(123))); $this->assertEquals('{"session_id":"12345","filter":{"facets":{"2":[123]}}}', json_encode($criteria->toArray())); $criteria->filterByFacetIds(array(2 => array(456)), true); $this->assertEquals('{"session_id":"12345","filter":{"facets":{"2":[123,456]}}}', json_encode($criteria->toArray())); $criteria->filterByFacetIds(array(1 => array(123)), true); $this->assertEquals('{"session_id":"12345","filter":{"facets":{"2":[123,456],"1":[123]}}}', json_encode($criteria->toArray())); $criteria->filterByFacetIds(array(2 => array(789, 123)), true); $criteria->filterByFacetIds(array(2 => array(789)), true); $this->assertEquals('{"session_id":"12345","filter":{"facets":{"2":[123,456,789],"1":[123]}}}', json_encode($criteria->toArray())); $criteria = ProductSearchCriteria::create('12345')->filterByFacetGroupSet(new FacetGroupSet(array(0 => array(264)))); $this->assertEquals('{"session_id":"12345","filter":{"facets":{"0":[264]}}}', json_encode($criteria->toArray())); $criteria->filterByFacetGroupSet(new FacetGroupSet(array(0 => array(123))), true); $this->assertEquals('{"session_id":"12345","filter":{"facets":{"0":[264,123]}}}', json_encode($criteria->toArray())); $facetGroup = new FacetGroup(0, 'brand'); $facetGroup->addFacet(new Facet(264, 'TOM', null, 0, 'brand')); $criteria = ProductSearchCriteria::create('12345')->filterByFacetGroup($facetGroup); $this->assertEquals('{"session_id":"12345","filter":{"facets":{"0":[264]}}}', json_encode($criteria->toArray())); $facetGroup2 = new FacetGroup(0, 'brand'); $facetGroup2->addFacet(new Facet(123, 'FOO', null, 0, 'brand')); $criteria->filterByFacetGroup($facetGroup2, true); $this->assertEquals('{"session_id":"12345","filter":{"facets":{"0":[264,123]}}}', json_encode($criteria->toArray())); $criteria->filterByFacetIds(array(2 => array(456)), true); $this->assertEquals('{"session_id":"12345","filter":{"facets":{"0":[264,123],"2":[456]}}}', json_encode($criteria->toArray())); }