_query = new Solarium_Query_MoreLikeThis; $this->_builder = new Solarium_Client_RequestBuilder_MoreLikeThis; } public function testBuildParams() { $this->_query->setInterestingTerms('test'); $this->_query->setMatchInclude(true); $this->_query->setStart(12); $this->_query->setMltFields('description,name'); $this->_query->setMinimumTermFrequency(1); $this->_query->setMinimumDocumentFrequency(3); $this->_query->setMinimumWordLength(2); $this->_query->setMaximumWordLength(15); $this->_query->setMaximumQueryTerms(4); $this->_query->setMaximumNumberOfTokens(5); $this->_query->setBoost(true); $this->_query->setQueryFields('description'); $request = $this->_builder->build($this->_query); $this->assertEquals( array( 'mlt.interestingTerms' => 'test', 'mlt.match.include' => 'true', 'mlt.match.offset' => 12, 'mlt.fl' => 'description,name', 'mlt.mintf' => 1, 'mlt.mindf' => 3, 'mlt.minwl' => 2, 'mlt.maxwl' => 15, 'mlt.maxqt' => 4, 'mlt.maxntp' => 5, 'mlt.boost' => 'true', 'mlt.qf' => 'description', 'q' => '*:*', 'fl' => '*,score', 'rows' => 10, 'start' => 12, 'wt' => 'json' ), $request->getParams() ); $this->assertEquals( Solarium_Client_Request::METHOD_GET, $request->getMethod() ); } public function testBuildWithQueryStream() { $content = 'test content'; $this->_query->setQuery($content); $this->_query->setQueryStream(true); $request = $this->_builder->build($this->_query); $this->assertEquals(Solarium_Client_Request::METHOD_POST,$request->getMethod()); $this->assertEquals(null,$request->getParam('q')); $this->assertEquals($content,$request->getRawData()); $this->assertTrue(in_array('Content-Type: text/plain; charset=utf-8', $request->getHeaders())); } }