public function testLazyFacetOrderingMoreFacetsDeclaredThanPresentInReply() { $input = json_decode('{ "header": { "query": { "userId": "afd070b6-4315-40cc-975d-747e28bf132a", "sessionId": "5bf5642d-a262-4608-9901-45aa6e87325d" }, "performance": { "durationMs": 666 } }, "replySet": [ { "meta": { "uri": "Test", "totalItems": 200, "totalItemsIsExact": true, "pageItems": 2, "firstPageItem": 3, "lastPageItem": 4, "durationMs": 42, "firstPaFId": 1, "lastPaFId": 1, "producer": "SEARCH" }, "facets": { "facet": [ { "afs:t": "FacetInterval", "interval": [ { "key": "[3 .. 6]", "items": 1 } ], "layout": "INTERVAL", "type": "DATE", "id": "Baz" }, { "afs:t": "FacetInterval", "interval": [ { "key": "[3 .. 6]", "items": 1 } ], "layout": "INTERVAL", "type": "INTEGER", "id": "Bar" }, { "afs:t": "FacetInterval", "interval": [ { "key": "[0 .. 3]", "items": 1 } ], "layout": "INTERVAL", "type": "REAL", "id": "Foo" } ] } } ] }'); $config = new AfsHelperConfiguration(); $query = new AfsQuery(); $facet_mgr = $query->get_facet_manager(); $facet_mgr->set_facet_order(array('Foo', 'Bal', 'Bar'), AfsFacetOrder::LAX); $this->assertTrue($facet_mgr->has_facet('Foo')); $this->assertTrue($facet_mgr->has_facet('Bal')); $this->assertTrue($facet_mgr->has_facet('Bar')); $this->assertFalse($facet_mgr->has_facet('Baz')); $helper = new AfsReplysetHelper($input->replySet[0], $query, $config); $this->assertEquals(AfsFacetType::REAL_TYPE, $facet_mgr->get_facet('Foo')->get_type()); $this->assertEquals(AfsFacetType::INTEGER_TYPE, $facet_mgr->get_facet('Bar')->get_type()); $facets = $helper->get_facets(); $this->assertEquals(3, count($facets)); $this->assertEquals('Foo', $facets[0]->get_id()); $this->assertEquals('Bar', $facets[1]->get_id()); $this->assertEquals('Baz', $facets[2]->get_id()); }