Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
S
solarium
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
common
solarium
Commits
2eec03ac
Commit
2eec03ac
authored
Mar 03, 2012
by
Bas de Nooijer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moved requestbuilder and responseparser mappings out of the client class and into the query classes
parent
67efa44a
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
257 additions
and
94 deletions
+257
-94
library/Solarium/Core/Client/Client.php
library/Solarium/Core/Client/Client.php
+24
-66
library/Solarium/Core/Query/Query.php
library/Solarium/Core/Query/Query.php
+15
-0
library/Solarium/Core/Query/Result/QueryType.php
library/Solarium/Core/Query/Result/QueryType.php
+4
-6
library/Solarium/Query/Analysis/Query/Document.php
library/Solarium/Query/Analysis/Query/Document.php
+22
-1
library/Solarium/Query/Analysis/Query/Field.php
library/Solarium/Query/Analysis/Query/Field.php
+22
-0
library/Solarium/Query/MoreLikeThis/Query.php
library/Solarium/Query/MoreLikeThis/Query.php
+22
-0
library/Solarium/Query/Ping/Query.php
library/Solarium/Query/Ping/Query.php
+21
-0
library/Solarium/Query/Select/Query/Query.php
library/Solarium/Query/Select/Query/Query.php
+22
-0
library/Solarium/Query/Suggester/Query.php
library/Solarium/Query/Suggester/Query.php
+22
-0
library/Solarium/Query/Terms/Query.php
library/Solarium/Query/Terms/Query.php
+22
-0
library/Solarium/Query/Update/Query/Query.php
library/Solarium/Query/Update/Query/Query.php
+22
-0
tests/Solarium/Tests/Core/Client/ClientTest.php
tests/Solarium/Tests/Core/Client/ClientTest.php
+14
-21
tests/Solarium/Tests/Core/Query/QueryTest.php
tests/Solarium/Tests/Core/Query/QueryTest.php
+10
-0
tests/Solarium/Tests/Core/Query/Result/QueryTypeTest.php
tests/Solarium/Tests/Core/Query/Result/QueryTypeTest.php
+5
-0
tests/Solarium/Tests/Query/Analysis/Query/QueryTest.php
tests/Solarium/Tests/Query/Analysis/Query/QueryTest.php
+10
-0
No files found.
library/Solarium/Core/Client/Client.php
View file @
2eec03ac
...
@@ -122,46 +122,14 @@ class Client extends Configurable
...
@@ -122,46 +122,14 @@ class Client extends Configurable
* These can be customized using {@link registerQueryType()}
* These can be customized using {@link registerQueryType()}
*/
*/
protected
$queryTypes
=
array
(
protected
$queryTypes
=
array
(
self
::
QUERY_SELECT
=>
array
(
self
::
QUERY_SELECT
=>
'Solarium\Query\Select\Query\Query'
,
'query'
=>
'Solarium\Query\Select\Query\Query'
,
self
::
QUERY_UPDATE
=>
'Solarium\Query\Update\Query\Query'
,
'requestbuilder'
=>
'Solarium\Query\Select\RequestBuilder\RequestBuilder'
,
self
::
QUERY_PING
=>
'Solarium\Query\Ping\Query'
,
'responseparser'
=>
'Solarium\Query\Select\ResponseParser\ResponseParser'
self
::
QUERY_MORELIKETHIS
=>
'Solarium\Query\MoreLikeThis\Query'
,
),
self
::
QUERY_ANALYSIS_DOCUMENT
=>
'Solarium\Query\Analysis\Query\Document'
,
self
::
QUERY_UPDATE
=>
array
(
self
::
QUERY_ANALYSIS_FIELD
=>
'Solarium\Query\Analysis\Query\Field'
,
'query'
=>
'Solarium\Query\Update\Query\Query'
,
self
::
QUERY_TERMS
=>
'Solarium\Query\Terms\Query'
,
'requestbuilder'
=>
'Solarium\Query\Update\RequestBuilder'
,
self
::
QUERY_SUGGESTER
=>
'Solarium\Query\Suggester\Query'
,
'responseparser'
=>
'Solarium\Query\Update\ResponseParser'
),
self
::
QUERY_PING
=>
array
(
'query'
=>
'Solarium\Query\Ping\Query'
,
'requestbuilder'
=>
'Solarium\Query\Ping\RequestBuilder'
,
'responseparser'
=>
'Solarium\Query\Ping\ResponseParser'
),
self
::
QUERY_MORELIKETHIS
=>
array
(
'query'
=>
'Solarium\Query\MoreLikeThis\Query'
,
'requestbuilder'
=>
'Solarium\Query\MoreLikeThis\RequestBuilder'
,
'responseparser'
=>
'Solarium\Query\MoreLikeThis\ResponseParser'
),
self
::
QUERY_ANALYSIS_DOCUMENT
=>
array
(
'query'
=>
'Solarium\Query\Analysis\Query\Document'
,
'requestbuilder'
=>
'Solarium\Query\Analysis\RequestBuilder\Document'
,
'responseparser'
=>
'Solarium\Query\Analysis\ResponseParser\Document'
),
self
::
QUERY_ANALYSIS_FIELD
=>
array
(
'query'
=>
'Solarium\Query\Analysis\Query\Field'
,
'requestbuilder'
=>
'Solarium\Query\Analysis\RequestBuilder\Field'
,
'responseparser'
=>
'Solarium\Query\Analysis\ResponseParser\Field'
),
self
::
QUERY_TERMS
=>
array
(
'query'
=>
'Solarium\Query\Terms\Query'
,
'requestbuilder'
=>
'Solarium\Query\Terms\RequestBuilder'
,
'responseparser'
=>
'Solarium\Query\Terms\ResponseParser'
),
self
::
QUERY_SUGGESTER
=>
array
(
'query'
=>
'Solarium\Query\Suggester\Query'
,
'requestbuilder'
=>
'Solarium\Query\Suggester\RequestBuilder'
,
'responseparser'
=>
'Solarium\Query\Suggester\ResponseParser'
),
);
);
/**
/**
...
@@ -229,6 +197,7 @@ class Client extends Configurable
...
@@ -229,6 +197,7 @@ class Client extends Configurable
* The adapter has to be a class that extends
* The adapter has to be a class that extends
* {@link Solarium\Client\Adapter}.
* {@link Solarium\Client\Adapter}.
*
*
*
* If a string is passed it is assumed to be the classname and it will be
* If a string is passed it is assumed to be the classname and it will be
* instantiated on first use. This requires the availability of the class
* instantiated on first use. This requires the availability of the class
* through autoloading or a manual require before calling this method.
* through autoloading or a manual require before calling this method.
...
@@ -302,18 +271,12 @@ class Client extends Configurable
...
@@ -302,18 +271,12 @@ class Client extends Configurable
* require before calling this method.
* require before calling this method.
*
*
* @param string $type
* @param string $type
* @param string $query
* @param string $queryClass
* @param string|object $requestBuilder
* @param string|object $responseParser
* @return self Provides fluent interface
* @return self Provides fluent interface
*/
*/
public
function
registerQueryType
(
$type
,
$query
,
$requestBuilder
,
$responseParser
)
public
function
registerQueryType
(
$type
,
$query
Class
)
{
{
$this
->
queryTypes
[
$type
]
=
array
(
$this
->
queryTypes
[
$type
]
=
$queryClass
;
'query'
=>
$query
,
'requestbuilder'
=>
$requestBuilder
,
'responseparser'
=>
$responseParser
,
);
return
$this
;
return
$this
;
}
}
...
@@ -326,16 +289,15 @@ class Client extends Configurable
...
@@ -326,16 +289,15 @@ class Client extends Configurable
*/
*/
public
function
registerQueryTypes
(
$queryTypes
)
public
function
registerQueryTypes
(
$queryTypes
)
{
{
foreach
(
$queryTypes
as
$type
=>
$
queryType
)
{
foreach
(
$queryTypes
as
$type
=>
$
class
)
{
if
(
!
isset
(
$queryType
[
'type'
]))
$queryType
[
'type'
]
=
$type
;
// support both "key=>value" and "(no-key) => array(key=>x,query=>y)" formats
if
(
is_array
(
$class
))
{
if
(
isset
(
$class
[
'type'
]))
$type
=
$class
[
'type'
];
$class
=
$class
[
'query'
];
}
$this
->
registerQueryType
(
$this
->
registerQueryType
(
$type
,
$class
);
$queryType
[
'type'
],
$queryType
[
'query'
],
$queryType
[
'requestbuilder'
],
$queryType
[
'responseparser'
]
);
}
}
}
}
...
@@ -439,7 +401,7 @@ class Client extends Configurable
...
@@ -439,7 +401,7 @@ class Client extends Configurable
*
*
* You can remove a plugin by passing the plugin key, or the plugin instance
* You can remove a plugin by passing the plugin key, or the plugin instance
*
*
* @param string|
Abstract
Plugin $plugin
* @param string|Plugin $plugin
* @return self Provides fluent interface
* @return self Provides fluent interface
*/
*/
public
function
removePlugin
(
$plugin
)
public
function
removePlugin
(
$plugin
)
...
@@ -514,15 +476,11 @@ class Client extends Configurable
...
@@ -514,15 +476,11 @@ class Client extends Configurable
$pluginResult
=
$this
->
callPlugins
(
'preCreateRequest'
,
array
(
$query
),
true
);
$pluginResult
=
$this
->
callPlugins
(
'preCreateRequest'
,
array
(
$query
),
true
);
if
(
$pluginResult
!==
null
)
return
$pluginResult
;
if
(
$pluginResult
!==
null
)
return
$pluginResult
;
$
queryType
=
$query
->
getType
();
$
requestBuilder
=
$query
->
getRequestBuilder
();
if
(
!
isset
(
$this
->
queryTypes
[
$queryType
])
)
{
if
(
!
$requestBuilder
)
{
throw
new
Exception
(
'No requestbuilder re
gistered for querytype: '
.
$queryType
);
throw
new
Exception
(
'No requestbuilder re
turned by querytype: '
.
$query
->
getType
()
);
}
}
$requestBuilder
=
$this
->
queryTypes
[
$queryType
][
'requestbuilder'
];
if
(
is_string
(
$requestBuilder
))
{
$requestBuilder
=
new
$requestBuilder
;
}
$request
=
$requestBuilder
->
build
(
$query
);
$request
=
$requestBuilder
->
build
(
$query
);
$this
->
callPlugins
(
'postCreateRequest'
,
array
(
$query
,
$request
));
$this
->
callPlugins
(
'postCreateRequest'
,
array
(
$query
,
$request
));
...
@@ -746,7 +704,7 @@ class Client extends Configurable
...
@@ -746,7 +704,7 @@ class Client extends Configurable
throw
new
Exception
(
'Unknown querytype: '
.
$type
);
throw
new
Exception
(
'Unknown querytype: '
.
$type
);
}
}
$class
=
$this
->
queryTypes
[
$type
]
[
'query'
]
;
$class
=
$this
->
queryTypes
[
$type
];
$query
=
new
$class
(
$options
);
$query
=
new
$class
(
$options
);
$this
->
callPlugins
(
'postCreateQuery'
,
array
(
$type
,
$options
,
$query
));
$this
->
callPlugins
(
'postCreateQuery'
,
array
(
$type
,
$options
,
$query
));
...
...
library/Solarium/Core/Query/Query.php
View file @
2eec03ac
...
@@ -73,6 +73,21 @@ abstract class Query extends Configurable
...
@@ -73,6 +73,21 @@ abstract class Query extends Configurable
*/
*/
abstract
public
function
getType
();
abstract
public
function
getType
();
/**
* Get the requestbuilder class for this query
*
* @return object
*/
abstract
public
function
getRequestBuilder
();
/**
* Get the response parser class for this query
*
* @return object
*/
abstract
public
function
getResponseParser
();
/**
/**
* Set handler option
* Set handler option
*
*
...
...
library/Solarium/Core/Query/Result/QueryType.php
View file @
2eec03ac
...
@@ -68,14 +68,12 @@ class QueryType extends Result
...
@@ -68,14 +68,12 @@ class QueryType extends Result
protected
function
parseResponse
()
protected
function
parseResponse
()
{
{
if
(
!
$this
->
parsed
)
{
if
(
!
$this
->
parsed
)
{
$queryType
=
$this
->
query
->
getType
();
$
queryTypes
=
$this
->
client
->
getQueryTypes
();
$
responseParser
=
$this
->
query
->
getResponseParser
();
if
(
!
isset
(
$queryTypes
[
$queryType
])
)
{
if
(
!
$responseParser
)
{
throw
new
Exception
(
'No responseparser re
gistered for querytype: '
.
$queryType
);
throw
new
Exception
(
'No responseparser re
turned by querytype: '
.
$this
->
query
->
getType
()
);
}
}
$responseParserClass
=
$queryTypes
[
$queryType
][
'responseparser'
];
$responseParser
=
new
$responseParserClass
;
$this
->
mapData
(
$responseParser
->
parse
(
$this
));
$this
->
mapData
(
$responseParser
->
parse
(
$this
));
$this
->
parsed
=
true
;
$this
->
parsed
=
true
;
...
...
library/Solarium/Query/Analysis/Query/Document.php
View file @
2eec03ac
...
@@ -41,7 +41,8 @@
...
@@ -41,7 +41,8 @@
*/
*/
namespace
Solarium\Query\Analysis\Query
;
namespace
Solarium\Query\Analysis\Query
;
use
Solarium\Core\Client\Client
;
use
Solarium\Core\Client\Client
;
use
Solarium\Query\Analysis\ResponseParser\Document
as
ResponseParser
;
use
Solarium\Query\Analysis\RequestBuilder\Document
as
RequestBuilder
;
/**
/**
* Analysis document query
* Analysis document query
...
@@ -79,6 +80,26 @@ class Document extends Query
...
@@ -79,6 +80,26 @@ class Document extends Query
return
Client
::
QUERY_ANALYSIS_DOCUMENT
;
return
Client
::
QUERY_ANALYSIS_DOCUMENT
;
}
}
/**
* Get a requestbuilder for this query
*
* @return RequestBuilder
*/
public
function
getRequestBuilder
()
{
return
new
RequestBuilder
;
}
/**
* Get a response parser for this query
*
* @return ResponseParser
*/
public
function
getResponseParser
()
{
return
new
ResponseParser
;
}
/**
/**
* Add a single document
* Add a single document
*
*
...
...
library/Solarium/Query/Analysis/Query/Field.php
View file @
2eec03ac
...
@@ -41,6 +41,8 @@
...
@@ -41,6 +41,8 @@
*/
*/
namespace
Solarium\Query\Analysis\Query
;
namespace
Solarium\Query\Analysis\Query
;
use
Solarium\Core\Client\Client
;
use
Solarium\Core\Client\Client
;
use
Solarium\Query\Analysis\ResponseParser\Field
as
ResponseParser
;
use
Solarium\Query\Analysis\RequestBuilder\Field
as
RequestBuilder
;
/**
/**
* Analysis document query
* Analysis document query
...
@@ -71,6 +73,26 @@ class Field extends Query
...
@@ -71,6 +73,26 @@ class Field extends Query
return
Client
::
QUERY_ANALYSIS_FIELD
;
return
Client
::
QUERY_ANALYSIS_FIELD
;
}
}
/**
* Get a requestbuilder for this query
*
* @return RequestBuilder
*/
public
function
getRequestBuilder
()
{
return
new
RequestBuilder
;
}
/**
* Get a response parser for this query
*
* @return ResponseParser
*/
public
function
getResponseParser
()
{
return
new
ResponseParser
;
}
/**
/**
* Set the field value option
* Set the field value option
*
*
...
...
library/Solarium/Query/MoreLikeThis/Query.php
View file @
2eec03ac
...
@@ -45,6 +45,8 @@
...
@@ -45,6 +45,8 @@
namespace
Solarium\Query\MoreLikeThis
;
namespace
Solarium\Query\MoreLikeThis
;
use
Solarium\Query\Select\Query\Query
as
SelectQuery
;
use
Solarium\Query\Select\Query\Query
as
SelectQuery
;
use
Solarium\Core\Client\Client
;
use
Solarium\Core\Client\Client
;
use
Solarium\Query\MoreLikeThis\ResponseParser
as
ResponseParser
;
use
Solarium\Query\MoreLikeThis\RequestBuilder
as
RequestBuilder
;
/**
/**
* MoreLikeThis Query
* MoreLikeThis Query
...
@@ -69,6 +71,26 @@ class Query extends SelectQuery
...
@@ -69,6 +71,26 @@ class Query extends SelectQuery
return
Client
::
QUERY_MORELIKETHIS
;
return
Client
::
QUERY_MORELIKETHIS
;
}
}
/**
* Get a requestbuilder for this query
*
* @return RequestBuilder
*/
public
function
getRequestBuilder
()
{
return
new
RequestBuilder
;
}
/**
* Get a response parser for this query
*
* @return ResponseParser
*/
public
function
getResponseParser
()
{
return
new
ResponseParser
;
}
/**
/**
* Default options
* Default options
*
*
...
...
library/Solarium/Query/Ping/Query.php
View file @
2eec03ac
...
@@ -42,6 +42,7 @@
...
@@ -42,6 +42,7 @@
namespace
Solarium\Query\Ping
;
namespace
Solarium\Query\Ping
;
use
Solarium\Core\Query\Query
as
BaseQuery
;
use
Solarium\Core\Query\Query
as
BaseQuery
;
use
Solarium\Core\Client\Client
;
use
Solarium\Core\Client\Client
;
use
Solarium\Query\Ping\RequestBuilder
as
RequestBuilder
;
/**
/**
* Ping query
* Ping query
...
@@ -66,6 +67,26 @@ class Query extends BaseQuery
...
@@ -66,6 +67,26 @@ class Query extends BaseQuery
return
Client
::
QUERY_PING
;
return
Client
::
QUERY_PING
;
}
}
/**
* Get a requestbuilder for this query
*
* @return RequestBuilder
*/
public
function
getRequestBuilder
()
{
return
new
RequestBuilder
;
}
/**
* The ping query has no response parser so we return a null value
*
* @return null;
*/
public
function
getResponseParser
()
{
return
null
;
}
/**
/**
* Default options
* Default options
*
*
...
...
library/Solarium/Query/Select/Query/Query.php
View file @
2eec03ac
...
@@ -43,6 +43,8 @@ namespace Solarium\Query\Select\Query;
...
@@ -43,6 +43,8 @@ namespace Solarium\Query\Select\Query;
use
Solarium\Core\Exception
;
use
Solarium\Core\Exception
;
use
Solarium\Core\Client\Client
;
use
Solarium\Core\Client\Client
;
use
Solarium\Core\Query\Query
as
BaseQuery
;
use
Solarium\Core\Query\Query
as
BaseQuery
;
use
Solarium\Query\Select\RequestBuilder\RequestBuilder
;
use
Solarium\Query\Select\ResponseParser\ResponseParser
;
/**
/**
* Select Query
* Select Query
...
@@ -132,6 +134,26 @@ class Query extends BaseQuery
...
@@ -132,6 +134,26 @@ class Query extends BaseQuery
return
Client
::
QUERY_SELECT
;
return
Client
::
QUERY_SELECT
;
}
}
/**
* Get a requestbuilder for this query
*
* @return RequestBuilder
*/
public
function
getRequestBuilder
()
{
return
new
RequestBuilder
;
}
/**
* Get a response parser for this query
*
* @return ResponseParser
*/
public
function
getResponseParser
()
{
return
new
ResponseParser
;
}
/**
/**
* Default options
* Default options
*
*
...
...
library/Solarium/Query/Suggester/Query.php
View file @
2eec03ac
...
@@ -42,6 +42,8 @@
...
@@ -42,6 +42,8 @@
namespace
Solarium\Query\Suggester
;
namespace
Solarium\Query\Suggester
;
use
Solarium\Core\Query\Query
as
BaseQuery
;
use
Solarium\Core\Query\Query
as
BaseQuery
;
use
Solarium\Core\Client\Client
;
use
Solarium\Core\Client\Client
;
use
Solarium\Query\Suggester\RequestBuilder
;
use
Solarium\Query\Suggester\ResponseParser
;
/**
/**
* Suggester Query
* Suggester Query
...
@@ -64,6 +66,26 @@ class Query extends BaseQuery
...
@@ -64,6 +66,26 @@ class Query extends BaseQuery
return
Client
::
QUERY_SUGGESTER
;
return
Client
::
QUERY_SUGGESTER
;
}
}
/**
* Get a requestbuilder for this query
*
* @return RequestBuilder
*/
public
function
getRequestBuilder
()
{
return
new
RequestBuilder
;
}
/**
* Get a response parser for this query
*
* @return ResponseParser
*/
public
function
getResponseParser
()
{
return
new
ResponseParser
;
}
/**
/**
* Default options
* Default options
*
*
...
...
library/Solarium/Query/Terms/Query.php
View file @
2eec03ac
...
@@ -42,6 +42,8 @@
...
@@ -42,6 +42,8 @@
namespace
Solarium\Query\Terms
;
namespace
Solarium\Query\Terms
;
use
Solarium\Core\Client\Client
;
use
Solarium\Core\Client\Client
;
use
Solarium\Core\Query\Query
as
BaseQuery
;
use
Solarium\Core\Query\Query
as
BaseQuery
;
use
Solarium\Query\Terms\RequestBuilder
;
use
Solarium\Query\Terms\ResponseParser
;
/**
/**
* Terms query
* Terms query
...
@@ -67,6 +69,26 @@ class Query extends BaseQuery
...
@@ -67,6 +69,26 @@ class Query extends BaseQuery
return
Client
::
QUERY_TERMS
;
return
Client
::
QUERY_TERMS
;
}
}
/**
* Get a requestbuilder for this query
*
* @return RequestBuilder
*/
public
function
getRequestBuilder
()
{
return
new
RequestBuilder
;
}
/**
* Get a response parser for this query
*
* @return ResponseParser
*/
public
function
getResponseParser
()
{
return
new
ResponseParser
;
}
/**
/**
* Default options
* Default options
*
*
...
...
library/Solarium/Query/Update/Query/Query.php
View file @
2eec03ac
...
@@ -43,6 +43,8 @@ namespace Solarium\Query\Update\Query;
...
@@ -43,6 +43,8 @@ namespace Solarium\Query\Update\Query;
use
Solarium\Core\Exception
;
use
Solarium\Core\Exception
;
use
Solarium\Core\Client\Client
;
use
Solarium\Core\Client\Client
;
use
Solarium\Core\Query\Query
as
BaseQuery
;
use
Solarium\Core\Query\Query
as
BaseQuery
;
use
Solarium\Query\Update\RequestBuilder
;
use
Solarium\Query\Update\ResponseParser
;
/**
/**
* Update query
* Update query
...
@@ -126,6 +128,26 @@ class Query extends BaseQuery
...
@@ -126,6 +128,26 @@ class Query extends BaseQuery
return
Client
::
QUERY_UPDATE
;
return
Client
::
QUERY_UPDATE
;
}
}
/**
* Get a requestbuilder for this query
*
* @return RequestBuilder
*/
public
function
getRequestBuilder
()
{
return
new
RequestBuilder
;
}
/**
* Get a response parser for this query
*
* @return ResponseParser
*/
public
function
getResponseParser
()
{
return
new
ResponseParser
;
}
/**
/**
* Initialize options
* Initialize options
*
*
...
...
tests/Solarium/Tests/Core/Client/ClientTest.php
View file @
2eec03ac
...
@@ -67,11 +67,7 @@ class ClientTest extends \PHPUnit_Framework_TestCase
...
@@ -67,11 +67,7 @@ class ClientTest extends \PHPUnit_Framework_TestCase
'port'
=>
8080
,
'port'
=>
8080
,
),
),
'querytype'
=>
array
(
'querytype'
=>
array
(
'myquerytype'
=>
array
(
'myquerytype'
=>
'MyQuery'
,
'query'
=>
'MyQuery'
,
'requestbuilder'
=>
'MyRequestBuilder'
,
'responseparser'
=>
'MyResponseParser'
)
),
),
'plugin'
=>
array
(
'plugin'
=>
array
(
'myplugin'
=>
array
(
'myplugin'
=>
array
(
...
@@ -116,8 +112,6 @@ class ClientTest extends \PHPUnit_Framework_TestCase
...
@@ -116,8 +112,6 @@ class ClientTest extends \PHPUnit_Framework_TestCase
array
(
array
(
'type'
=>
'myquerytype'
,
'type'
=>
'myquerytype'
,
'query'
=>
'MyQuery'
,
'query'
=>
'MyQuery'
,
'requestbuilder'
=>
'MyRequestBuilder'
,
'responseparser'
=>
'MyResponseParser'
,
)
)
),
),
'plugin'
=>
array
(
'plugin'
=>
array
(
...
@@ -141,11 +135,7 @@ class ClientTest extends \PHPUnit_Framework_TestCase
...
@@ -141,11 +135,7 @@ class ClientTest extends \PHPUnit_Framework_TestCase
$queryTypes
=
$this
->
client
->
getQueryTypes
();
$queryTypes
=
$this
->
client
->
getQueryTypes
();
$this
->
assertEquals
(
$this
->
assertEquals
(
array
(
'MyQuery'
,
'requestbuilder'
=>
'MyRequestBuilder'
,
'responseparser'
=>
'MyResponseParser'
,
'query'
=>
'MyQuery'
,
),
$queryTypes
[
'myquerytype'
]
$queryTypes
[
'myquerytype'
]
);
);
...
@@ -179,13 +169,9 @@ class ClientTest extends \PHPUnit_Framework_TestCase
...
@@ -179,13 +169,9 @@ class ClientTest extends \PHPUnit_Framework_TestCase
{
{
$queryTypes
=
$this
->
client
->
getQueryTypes
();
$queryTypes
=
$this
->
client
->
getQueryTypes
();
$this
->
client
->
registerQueryType
(
'myquerytype'
,
'myquery'
,
'mybuilder'
,
'myparser'
);
$this
->
client
->
registerQueryType
(
'myquerytype'
,
'myquery'
);
$queryTypes
[
'myquerytype'
]
=
array
(
$queryTypes
[
'myquerytype'
]
=
'myquery'
;
'query'
=>
'myquery'
,
'requestbuilder'
=>
'mybuilder'
,
'responseparser'
=>
'myparser'
,
);
$this
->
assertEquals
(
$this
->
assertEquals
(
$queryTypes
,
$queryTypes
,
...
@@ -287,15 +273,22 @@ class ClientTest extends \PHPUnit_Framework_TestCase
...
@@ -287,15 +273,22 @@ class ClientTest extends \PHPUnit_Framework_TestCase
public
function
testCreateRequest
()
public
function
testCreateRequest
()
{
{
$queryStub
=
$this
->
getMock
(
'Solarium\Query\Select\Query\Query'
);
$queryStub
=
$this
->
getMock
(
'Solarium\Query\Select\Query\Query'
);
$queryStub
->
expects
(
$this
->
any
())
->
method
(
'getType'
)
->
will
(
$this
->
returnValue
(
'testquerytype'
));
$observer
=
$this
->
getMock
(
'Solarium\Core\Client\RequestBuilder'
,
array
(
'build'
));
$observer
=
$this
->
getMock
(
'Solarium\Core\Client\RequestBuilder'
,
array
(
'build'
));
$observer
->
expects
(
$this
->
once
())
$observer
->
expects
(
$this
->
once
())
->
method
(
'build'
)
->
method
(
'build'
)
->
with
(
$this
->
equalTo
(
$queryStub
));
->
with
(
$this
->
equalTo
(
$queryStub
));
$queryStub
->
expects
(
$this
->
any
())
->
method
(
'getType'
)
->
will
(
$this
->
returnValue
(
'testquerytype'
));
$queryStub
->
expects
(
$this
->
any
())
->
method
(
'getType'
)
->
will
(
$this
->
returnValue
(
'testquerytype'
));
$queryStub
->
expects
(
$this
->
any
())
->
method
(
'getRequestBuilder'
)
->
will
(
$this
->
returnValue
(
$observer
));
$this
->
client
->
registerQueryType
(
'testquerytype'
,
'Solarium\Query\Select\Query\Query'
,
$observer
,
''
);
$this
->
client
->
registerQueryType
(
'testquerytype'
,
'Solarium\Query\Select\Query\Query'
,
$observer
,
''
);
$this
->
client
->
createRequest
(
$queryStub
);
$this
->
client
->
createRequest
(
$queryStub
);
}
}
...
...
tests/Solarium/Tests/Core/Query/QueryTest.php
View file @
2eec03ac
...
@@ -82,4 +82,14 @@ class TestQuery extends Query
...
@@ -82,4 +82,14 @@ class TestQuery extends Query
{
{
return
'testType'
;
return
'testType'
;
}
}
public
function
getRequestBuilder
()
{
return
null
;
}
public
function
getResponseParser
()
{
return
null
;
}
}
}
\ No newline at end of file
tests/Solarium/Tests/Core/Query/Result/QueryTypeTest.php
View file @
2eec03ac
...
@@ -94,6 +94,11 @@ class QueryDummyTest extends SelectQuery
...
@@ -94,6 +94,11 @@ class QueryDummyTest extends SelectQuery
{
{
return
'dummy'
;
return
'dummy'
;
}
}
public
function
getResponseParser
()
{
return
null
;
}
}
}
class
QueryTypeDummy
extends
QueryTypeResult
class
QueryTypeDummy
extends
QueryTypeResult
...
...
tests/Solarium/Tests/Query/Analysis/Query/QueryTest.php
View file @
2eec03ac
...
@@ -69,7 +69,17 @@ class TestAnalysisQuery extends Query{
...
@@ -69,7 +69,17 @@ class TestAnalysisQuery extends Query{
public
function
getType
()
public
function
getType
()
{
{
return
null
;
}
public
function
getRequestBuilder
()
{
return
null
;
}
public
function
getResponseParser
()
{
return
null
;
}
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment