public function testSetInvalidFormat() { $config = new AfsHelperConfiguration(); try { $config->set_helper_format('foo'); $this->fail('Invalid helper format should have raised exception'); } catch (InvalidArgumentException $e) { } }
public function testBlabla() { $client_data = '<afs:type xmlns:afs=\\"http://ref.antidot.net/7.3/bo.xsd\\">default</afs:type><afs:customData xmlns:afs=\\"http://ref.antidot.net/7.3/bo.xsd\\"><afs:key1>v1</afs:key1></afs:customData>'; $input = json_decode('{ "header": { "query": { "userId": "afd070b6-4315-40cc-975d-747e28bf132a", "sessionId": "5bf5642d-a262-4608-9901-45aa6e87325d", "date": "2013-10-02T15:48:41+0200", "queryParam": [ { "name": "afs:service", "value": "42" } ], "mainCtx": { "textQuery": "title" }, "textQuery": "title" }, "user": { "requestMethod": "GET", "agent": "Mozilla/5.0 (X11; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0 Iceweasel/23.0", "address": "127.0.0.1", "output": { "format": "JSON", "encoding": "gzip", "charset": "UTF-8" } }, "performance": { "durationMs": 666 }, "info": { } }, "replySet": [ { "meta": { "uri": "Promote", "totalItems": 200, "totalItemsIsExact": true, "pageItems": 2, "firstPageItem": 3, "lastPageItem": 4, "durationMs": 42, "firstPaFId": 1, "lastPaFId": 1, "producer": "SEARCH" }, "facets": { "facet": [ { "afs:t": "FacetTree", "node": [ { "key": "false", "labels": [ { "label": "BAD" } ], "items": 67 }, { "key": "true", "labels": [ { "label": "GOOD" } ], "items": 133 } ], "layout": "TREE", "type": "BOOL", "id": "BOOL", "labels": [ { "label": "Boolean facet" } ] } ] }, "content": { "reply": [ { "docId": 198, "uri": "http://foo.bar.baz/116", "title": [ { "afs:t": "KwicString", "text": "The " }, { "afs:t": "KwicMatch", "match": "title" }, { "afs:t": "KwicString", "text": " 116" } ], "abstract": [ { "afs:t": "KwicString", "text": "viens de tomber a monté d\'un nouveau cran dans l\'étrangeté. Jamais dans l\'Histoire de l\'humanité il n\'a existé de civilisation sans enfants. Je tente d\'en imaginer les conséquences. George, qui m\'a deviné, énumère: - Comme nous ne nous reproduisons pas, la moitié féminine de l\'humanité" }, { "afs:t": "KwicTruncate" } ], "relevance": { "rank": 3 }, "clientData": [ { "contents": "' . $client_data . '", "id": "main", "mimeType": "text/xml" } ] }, { "docId": 197, "uri": "http://foo.bar.baz/81", "title": [ { "afs:t": "KwicString", "text": "The " }, { "afs:t": "KwicMatch", "match": "title" }, { "afs:t": "KwicString", "text": " 81" } ], "abstract": [ { "afs:t": "KwicString", "text": "morose... il n\'y a pas de quoi en être fier. J\'émets des doutes, certes; mais au fond de moi, j\'ai confiance. Ne vous en étonnez-vous pas? Il y aurait pourtant bien de quoi! Voici que va surgir de nulle part une collectivité cachée comme aucune autre. Rien de pareil, jamais, n\'est arrivé dans" }, { "afs:t": "KwicTruncate" } ], "relevance": { "rank": 4 }, "clientData": [ { "contents": "' . $client_data . '", "id": "main", "mimeType": "text/xml" } ] } ] }, "pager": { "previousPage": 1, "nextPage": 3, "currentPage": 2, "page": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] } } ] }'); $config = new AfsHelperConfiguration(); $config->set_helper_format(AfsHelperFormat::HELPERS); $helper = new AfsPromoteReplysetHelper($input->replySet[0], $config); $meta = $helper->get_meta(); $this->assertEquals('Promote', $meta->get_feed()); $this->assertEquals('200', $meta->get_total_replies()); $this->assertEquals('42', $meta->get_duration()); $this->assertEquals('SEARCH', $meta->get_producer()); $this->assertEquals(2, $helper->get_nb_replies()); $replies = $helper->get_replies(); $this->assertEquals('The title 116', $replies[0]->title); $this->assertEquals('The title 81', $replies[1]->title); $custom_data = $replies[0]->get_custom_data(); $this->assertEquals(array("key1" => "v1"), $custom_data); // and so on... }
public function testIntrospectionResponseShouldInitializeMetadata() { $input = json_decode('{ "header": { "query": { "userId": "afd070b6-4315-40cc-975d-747e28bf132a", "sessionId": "5bf5642d-a262-4608-9901-45aa6e87325d" }, "performance": { "durationMs": 666 } }, "metadata": [ { "uri": "Catalog", "meta": { "producer": [], "info": { "sizeKb": 409093, "date": 1447110000, "searchFeedInfo": { "nbDocs": 33210, "nbShards": 1, "setInfos": [ { "setId": "Antidot_Root_Field", "childrenInfos": [], "facetInfos": [ { "afs:t": "FacetTree", "layout": "TREE", "type": "INTEGER", "id": "product_id", "sticky": false, "filter": true }, { "afs:t": "FacetTree", "layout": "TREE", "type": "STRING", "id": "name", "sticky": false, "filter": true }, { "afs:t": "FacetTree", "layout": "TREE", "type": "REAL", "id": "price_from", "sticky": false, "filter": true } ] } ] } } } } ] }'); $config = new AfsHelperConfiguration(); $config->set_helper_format(AfsHelperFormat::HELPERS); $response_helper = new AfsResponseHelper($input, new AfsQuery(), $config); $this->assertNotEmpty($response_helper->get_all_metadata()); $this->assertTrue($response_helper->has_metadata('Catalog')); $this->assertNotNull($response_helper->get_feed_metadata('Catalog')); }
// Coder/Decoder and Query /** [Coder/decoder and Query] */ $coder = new AfsQueryCoder('full_example.php'); $query = $coder->build_query($_GET); /** [Coder/decoder and Query] */ // Connector /** [Connector] */ $service = new AfsService(70000, AfsServiceStatus::STABLE); $host = 'eval.partners.antidot.net'; $connector = new AfsSearchConnector($host, $service); /** [Connector] */ // Configuration /** [Helper configuration] */ $config = new AfsHelperConfiguration(); $config->set_query_coder($coder); $config->set_helper_format(AfsHelperFormat::ARRAYS); /** [Helper configuration] */ // Facets and Facet Manager /** [Facets and Facet manager] */ $facet_mgr = $query->get_facet_manager(); $facet_mgr->add_facet(new AfsFacet('Organization', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('date_parution', AfsFacetType::DATE_TYPE)); $facet_mgr->add_facet(new AfsFacet('geo', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('media', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('person', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('period', AfsFacetType::DATE_TYPE, AfsFacetLayout::INTERVAL)); $facet_mgr->add_facet(new AfsFacet('source', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('taxo_iptc', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('theme', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('type', AfsFacetType::STRING_TYPE)); $facet_mgr->add_facet(new AfsFacet('pays', AfsFacetType::STRING_TYPE));
public function testFacetWithoutLabel() { $input = json_decode('{ "afs:t": "FacetTree", "node": [ { "key": "false", "labels": [ { "label": "BAD" } ], "items": 67 }, { "key": "true", "labels": [ { "label": "GOOD" } ], "items": 133 } ], "layout": "TREE", "type": "BOOL", "id": "BOOOOL" }'); $config = new AfsHelperConfiguration(); $config->set_helper_format(AfsHelperFormat::HELPERS); $query = new AfsQuery(); $facet = new AfsFacetHelper($input, $query, $config); $this->assertEquals('BOOOOL', $facet->get_label()); }