Commit 36770638 authored by Bas de Nooijer's avatar Bas de Nooijer

- fixes for bugs detected by new unittests

- improved unittests
parent bfd4d8d0
......@@ -78,7 +78,7 @@ class Solarium_Client_ResponseParser_Select extends Solarium_Client_ResponsePars
return array(
'status' => $data['responseHeader']['status'],
'querytime' => $data['responseHeader']['QTime'],
'queryTime' => $data['responseHeader']['QTime'],
'numfound' => $data['response']['numFound'],
'documents' => $documents,
'components' => $components,
......
......@@ -652,26 +652,14 @@ class Solarium_Query_Select extends Solarium_Query
} else {
if ($autoload == true) {
switch ($key) {
case Solarium_Query_Select::COMPONENT_MORELIKETHIS:
$className = 'Solarium_Query_Select_Component_MoreLikeThis';
break;
case Solarium_Query_Select::COMPONENT_FACETSET:
$className = 'Solarium_Query_Select_Component_FacetSet';
break;
case Solarium_Query_Select::COMPONENT_DISMAX:
$className = 'Solarium_Query_Select_Component_DisMax';
break;
case Solarium_Query_Select::COMPONENT_HIGHLIGHTING:
$className = 'Solarium_Query_Select_Component_Highlighting';
break;
default:
throw new Solarium_Exception('Cannot autoload unknown component: ' . $key);
if (!isset($this->_componentTypes[$key])) {
throw new Solarium_Exception('Cannot autoload unknown component: ' . $key);
}
$className = $this->_componentTypes[$key]['component'];
$component = new $className($config);
$this->setComponent($key, $component);
return $this->_components[$key];
return $component;
}
return null;
}
......
......@@ -108,9 +108,38 @@ class Solarium_Client_RequestBuilder_SelectTest extends PHPUnit_Framework_TestCa
);
}
public function testWithComponents()
public function testWithComponentNoBuilder()
{
//1 component met en 1 zonder builder registratie
$request = $this->_builder->build($this->_query);
$this->_query->registerComponentType('testcomponent','TestDummyComponent');
$this->_query->getComponent('testcomponent', true);
$requestWithNoBuilderComponent = $this->_builder->build($this->_query);
$this->assertEquals(
$request,
$requestWithNoBuilderComponent
);
}
public function testWithComponent()
{
$this->_query->getDisMax();
$request = $this->_builder->build($this->_query);
$this->assertEquals(
'dismax',
$request->getParam('defType')
);
}
}
class TestDummyComponent extends Solarium_Query_Select_Component{
public function getType()
{
return 'testcomponent';
}
}
\ No newline at end of file
......@@ -34,6 +34,49 @@ class Solarium_Client_ResponseParser_SelectTest extends PHPUnit_Framework_TestCa
public function testParse()
{
$data = array(
'response' => array(
'docs' => array(
array('fieldA' => 1, 'fieldB' => 'Test'),
array('fieldA' => 2, 'fieldB' => 'Test2')
),
'numFound' => 503
),
'responseHeader' => array(
'status' => 1,
'QTime' => 13,
)
);
$query = new Solarium_Query_Select(array('documentclass' => 'Solarium_Document_ReadWrite'));
$query->getFacetSet();
$resultStub = $this->getMock('Solarium_Result_Select', array(), array(), '', false);
$resultStub->expects($this->once())
->method('getData')
->will($this->returnValue($data));
$resultStub->expects($this->once())
->method('getQuery')
->will($this->returnValue($query));
$parser = new Solarium_Client_ResponseParser_Select;
$result = $parser->parse($resultStub);
$this->assertEquals(1, $result['status']);
$this->assertEquals(13, $result['queryTime']);
$this->assertEquals(503, $result['numfound']);
$docs = array(
new Solarium_Document_ReadWrite(array('fieldA' => 1, 'fieldB' => 'Test')),
new Solarium_Document_ReadWrite(array('fieldA' => 2, 'fieldB' => 'Test2'))
);
$this->assertEquals($docs, $result['documents']);
$components = array(
Solarium_Query_Select::COMPONENT_FACETSET => new Solarium_Result_Select_FacetSet(array())
);
$this->assertEquals($components, $result['components']);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment