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()));
 }